请为链接实现的BinaryTree类写⼀ 个height⽅法,返回树的⾼度
时间: 2024-05-02 09:23:53 浏览: 9
好的,下面是实现 BinaryTree 类的 height 方法的代码:
```python
class Node:
def __init__(self, val=None):
self.val = val
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def height(self, node):
if node is None:
return 0
else:
left_height = self.height(node.left)
right_height = self.height(node.right)
return max(left_height, right_height) + 1
```
上述代码中,我们定义了 `Node` 类来表示二叉树的节点,其中 `val` 表示节点的值,`left` 和 `right` 分别表示节点的左右子节点。然后我们定义了 `BinaryTree` 类来表示二叉树,其中 `root` 表示根节点。
`height` 方法采用递归的方式来计算树的高度,如果当前节点为空,则返回 0,否则递归计算左右子树的高度,然后取其中较大的一个加 1,即为当前节点所在子树的高度。
注意,该方法的参数是节点,而不是二叉树对象本身。如果要计算整个二叉树的高度,可以将根节点作为参数传入调用该方法。