递归算法求以k为根二叉树的高度
时间: 2024-09-28 18:04:16 浏览: 24
递归算法是一种解决问题的技术,特别适用于处理可以分解为规模更小同类问题的情况,如计算二叉树的高度。对于一个以k为根的二叉树,其高度可以通过下面的递归思路来求解:
1. **基本情况**:如果根节点k为空(即二叉树只有一个空节点),那么高度就是0。
2. **递归情况**:若k不为空,则二叉树的高度等于左子树高度加右子树高度再加1。这是因为每个非空节点都会增加一层,而左右子树的高度分别独立计算。
这里有一个简单的Python函数示例:
```python
def height(root, k):
# 如果根节点为空或者root值等于k,返回1(因为单节点也算一层数)
if not root or root.val == k:
return 1
# 否则,递归计算左子树和右子树的高度,然后加上1
else:
left_height = height(root.left, k)
right_height = height(root.right, k)
return max(left_height, right_height) + 1
```
调用这个函数,传入二叉树的根节点和目标值k即可得到高度。注意,实际应用中需要考虑边界条件,并确保输入的二叉树结构有效。
阅读全文