二分探索木の高さを見つけるためにこの方法を作り直すのを手伝ってくれる人がいるかどうか疑問に思っていました。これまでのところ、私のコードは次のようになります。しかし、私が得ている答えは実際の高さよりも 1 大きいです。しかし、return ステートメントから +1 を削除すると、実際の高さよりも 1 小さくなります。これらの BST。どんな助けでも大歓迎です。
public int findHeight(){
if(this.isEmpty()){
return 0;
}
else{
TreeNode<T> node = root;
return findHeight(node);
}
}
private int findHeight(TreeNode<T> aNode){
int heightLeft = 0;
int heightRight = 0;
if(aNode.left!=null)
heightLeft = findHeight(aNode.left);
if(aNode.right!=null)
heightRight = findHeight(aNode.right);
if(heightLeft > heightRight){
return heightLeft+1;
}
else{
return heightRight+1;
}
}