Python 二叉搜索树的最大高度

Python 二叉搜索树的最大高度,python,python-3.x,Python,Python 3.x,我在做一个关于二进制搜索树的python问题,讲师写了一行这样的代码 def getHeight(self, root): if not root: return -1 else: return (max(self.getHeight(root.right), self.getHeight(root.left)) + 1) 我不知道这是怎么回事。有人能解释一下为什么会这样吗?这是一种求BST高度的递归方法 return (max(self.get

我在做一个关于二进制搜索树的python问题,讲师写了一行这样的代码

def getHeight(self, root):
    if not root:
        return -1
    else:
        return (max(self.getHeight(root.right), self.getHeight(root.left)) + 1)

我不知道这是怎么回事。有人能解释一下为什么会这样吗?

这是一种求BST高度的递归方法

return (max(self.getHeight(root.right), self.getHeight(root.left)) + 1)
以上是基本条件,当到达节点叶节点的右节点或左节点时,函数返回-1

return语句可以简单地写为:

if not root:
      return -1

递归地得到左子树和右子树的高度,然后将最大值加1,因为我们认为高度0的树具有1的高度,所以添加1。


您可以观看简单的教程。

这是一种递归方法,用于查找BST的高度

return (max(self.getHeight(root.right), self.getHeight(root.left)) + 1)
以上是基本条件,当到达节点叶节点的右节点或左节点时,函数返回-1

return语句可以简单地写为:

if not root:
      return -1

递归地得到左子树和右子树的高度,然后将最大值加1,因为我们认为高度0的树具有1的高度,所以添加1。


您可以观看简单的教程。

您了解递归是如何工作的吗?或者您只对返回线有问题?递归新增“给定根的树的高度比其子树的最大根高度高一倍”。您了解递归是如何工作的吗?或者您只对返回线有问题?递归新增“具有给定根的树的高度比在其子树上根的子树的最大高度高一个。”