找到二叉搜索树的最小深度

时间:2014-10-12 09:06:06

标签: java binary-search-tree

我有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;}
}

我无法理解为什么,我有点清晰,非常感谢!如果您需要更多代码,请询问。

1 个答案:

答案 0 :(得分:0)

在这一行

else{return Math.min(right.height(), left.height()) + 1;}

你应该在左右节点而不是height()上调用minDepth()。