小编sou*_*lee的帖子

通过递归确定整数二叉树的大小

我有BinaryTreeNode(int值)及其左右子类和BinaryTree(int rootVal),BinaryTreeNode根,其中rootVal为其值.我开发了一个代码来计算树中的节点数(在BinaryTreeNode类中),但是由于NullPointerException它不起作用:

public int size(){
    if(this == null) {    // base case
        return 0;
    } else {
        return 1 + left.size() + right.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,我发现的另一种解决方案,采用类似的策略,有效:

public int size(BinaryTreeNode refNode){
    if(refNode == null) {    // base case
        return 0;       
    } else {
        return 1 + size(refNode.left) + size(refNode.right); 
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经理解为什么我的代码抛出异常(因为左/右指向null).但我想理解为什么第二种解决方案与准原理相同.先感谢您!

java recursion binary-tree

9
推荐指数
1
解决办法
272
查看次数

标签 统计

binary-tree ×1

java ×1

recursion ×1