首页 > 解决方案 > 计算二叉树中的级别数

问题描述

我正在尝试使用递归“Java”计算特定级别的节点数。我尝试了下面的代码,但问题是当我通过不在树中退出空的级别时,例如当我通过 5 时树中有 4 级它继续计数元素,我该如何解决?任何帮助表示赞赏。

private int countNodeLevel(int level,Node<E> n) 
{
    Node<E> curr=root;
    
    if(curr == null) {
        return 0;
    } 
    if(level == 0) {
        return 1;
    }
                
    return ( countNodeLevel( level - 1,n.leftChild)+countNodeLevel(level - 1, n.rightChild));
}

标签: javadata-structures

解决方案


private int countNodeLevel(int level, Node<E> n) {
    if (n == null) {
        return 0;
    } 
    if (level <= 0) {
        return 0;
    }
               
    return 1
        + countNodeLevel(level - 1, n.leftChild)
        + countNodeLevel(level - 1, n.rightChild);
}

0 级返回 0 似乎更合乎逻辑。对于一个节点,有 1 + 左 + 右。


推荐阅读