在BST中搜索叶节点时,我遇到了无限循环

时间:2018-01-05 19:36:32

标签: c++ binary-search-tree nodes

我在查找代码中的问题时遇到了一些麻烦。我需要进行搜索以在二叉树中查找叶节点。当我运行调试器,并选择这个特定的函数来调用(创建树后),我遇到了一个无限循环。这是我写的代码:

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);
    }
  }
}

1 个答案:

答案 0 :(得分:0)

为什么while(p >= NULL)不是if(p !=null)

 else
    {
        inorderTrav(p->left);
        inorderTrav(p->right);
    }

那么左右两边都有什么,因为其中一个是null无论如何?