Мне было интересно, сможет ли кто-нибудь помочь мне переработать этот метод, чтобы найти высоту двоичного дерева поиска. Пока что мой код выглядит так. Тем не менее, ответ, который я получаю, больше, чем фактическая высота на 1. Но когда я удаляю +1 из своих операторов return, это меньше фактической высоты на 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;
}
}