FindHeight(二叉树的)方法总是 returns 1?

FindHeight (of a binary tree) method always returns 1?

int findHeight(struct BstNode* root)
{
    if(root==NULL)
        return -1;
    return max(findHeight(root->left),findHeight(root->right))+1;
}

函数总是returns1作为高度。
这是代码 link。 https://github.com/ashwinidotx/OpenIssues/blob/master/Height%20Of%20Binary%20Tree.c

代码有问题。当您超出叶节点时,您 returning -1 是错误的。这是在计算树高时做减法。你应该在这里简单地 return 0 因为你到达终点,那里没有节点。

这里是更正的方法:

int findHeight(struct BstNode* root)
{
    if(root == NULL)
        return 0;

    return 1 + max(findHeight(root->left), findHeight(root->right));
}