我有2个类,BSTSet和BSTNode,每个类都有一个minDepth方法。目前我的方法返回错误的数字..
BSTSet
public int minDepth() {
if(root == null) return -1;
else return root.minDepth();
}
BSTNode
public int minDepth() {
if(left == null && right == null) return 0;
if(left != null && right == null) {return left.height()+ 1; }
else if(right != null && left == null ){return right.height()+ 1;}
else{return Math.min(right.height(), left.height()) + 1;}
}
我无法理解为什么,我有点清晰,非常感谢!如果您需要更多代码,请询问。
答案 0 :(得分:0)
在这一行
else{return Math.min(right.height(), left.height()) + 1;}
你应该在左右节点而不是height()上调用minDepth()。