0

我知道有很多函数可以通过递归调用函数并每次使用节点的根作为左右子树的参数来轻松获取二叉搜索树的高度。但是,当我不在 Treap 上获取参数但它仍然返回一个 int 时,我应该怎么做。我已经能够递归地调用其他方法,但是我停止了这个方法。一些帮助将不胜感激!

这就是我所拥有的,但我在很大程度上认为这是错误的

public int height()
{
    if(temp == null)
        return 0;
    else
    {
        temp = temp.left;
        temp = temp.right;
        return Math.max(height(), height()) + 1;
    }
}
4

1 回答 1

1

由于您正在编写 Java,因此无需显式传递参数:您“免费”获得一个参数 - 即方法调用的目标对象。

为此,height()需要在树节点对象上定义该方法。现在方法定义很简单:为了让你的Node对象知道它height(),它需要返回

  • 左子树和右子树的高度中较大的一个,加上节点本身的高度,或者
  • 如果左子树和右子树都是null.
于 2013-10-15T01:35:38.940 回答