Finden der Höhe im binären Suchbaum

Ich habe mich gefragt, ob mir jemand helfen kann, diese Methode zu überarbeiten, um die Höhe eines binären Suchbaums zu ermitteln. Bisher sieht mein Code so aus. Die Antwort, die ich erhalte, ist jedoch um 1 größer als die tatsächliche Höhe. Wenn ich jedoch die +1 aus meinen Rückgabeanweisungen entferne, ist sie um 1 kleiner als die tatsächliche Höhe. Ich versuche immer noch, meinen Kopf um die Rekursion mit zu wickeln diese BST. Jede Hilfe wäre sehr dankbar.

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

Antworten auf die Frage(20)

Ihre Antwort auf die Frage