我在查找代码中的问题时遇到了一些麻烦。我需要进行搜索以在二叉树中查找叶节点。当我运行调试器,并选择这个特定的函数来调用(创建树后),我遇到了一个无限循环。这是我写的代码:
void BT::countleaves(node* p)
{
int count = 0;
if (isEmpty())
{
cout << " Tree is empty." << endl;
return;
}
while (p >= NULL)
{
inorderTrav(p->left);
inorderTrav(p->right);
if (p->left == NULL && p->right == NULL)
{
count++;
}
else
{
inorderTrav(p->left);
inorderTrav(p->right);
}
}
}
答案 0 :(得分:0)
为什么while(p >= NULL)
不是if(p !=null)
?
else
{
inorderTrav(p->left);
inorderTrav(p->right);
}
那么左右两边都有什么,因为其中一个是null无论如何?