我有一个练习问题被难住了 - 在不使用递归的情况下获取二叉树中叶节点的数量。我已经四处寻找一些想法,我已经看到了一些想法,例如将节点传递到堆栈,但我不知道当有多个分支时如何做到这一点。任何人都可以提供指针吗?
NumberOfLeafNodes(root);
int NumberOfLeafNodes(NODE *p)
{
NODE *nodestack[50];
int top=-1;
int count=0;
if(p==NULL)
return 0;
nodestack[++top]=p;
while(top!=-1)
{
p=nodestack[top--];
while(p!=NULL)
{
if(p->leftchild==NULL && p->rightchild==NULL)
count++;
if(p->rightchild!=NULL)
nodestack[++top]=p->rightchild;
p=p->leftchild;
}
}
return count;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)