(1)求二叉树高度 用二叉链表创建一棵二叉树并利用递归算法求它的高度。
时间: 2024-02-18 13:03:53 浏览: 189
二叉树的高度可以通过递归求解。对于一棵二叉树,如果它是空树,则高度为0;否则,它的高度等于左右子树高度的较大值加1。具体实现可以参考下面的代码:
```python
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def tree_height(root):
if not root:
return 0
left_height = tree_height(root.left)
right_height = tree_height(root.right)
return max(left_height, right_height) + 1
```
其中,`TreeNode`表示二叉树节点的类,`tree_height`函数接受一个二叉树的根节点作为参数,返回二叉树的高度。在函数中,先判断当前节点是否为空,如果为空,则返回0;否则,分别递归求解左子树和右子树的高度,并返回左右子树高度的较大值加1。
例如,对于下面这棵二叉树:
```
1
/ \
2 3
/ \
4 5
```
可以通过以下代码计算它的高度:
```python
root = TreeNode(1)
root.left = TreeNode(2)
root.right = TreeNode(3)
root.right.left = TreeNode(4)
root.right.right = TreeNode(5)
print(tree_height(root)) # 输出:3
```
因为这棵二叉树的高度为3,所以函数返回值为3。
阅读全文