判断是否是平衡二叉树
时间: 2024-11-03 21:08:17 浏览: 7
判断一棵二叉树是否为平衡二叉树,意味着每个节点的两个子树的高度差不超过1。这通常通过递归的方式来实现。对于一个给定的节点,首先检查其左右子树是否存在,然后递归地分别计算左子树和右子树的高度。若这两个高度之差的绝对值大于1,则该二叉树不是平衡二叉树;否则,继续检查这两个子树是否都是平衡二叉树。
这里是一个简单的伪代码示例:
```python
def isBalanced(root):
if root is None:
return True # 空树视为平衡
left_height = height(root.left)
right_height = height(root.right)
if abs(left_height - right_height) > 1:
return False # 高度差大于1,不平衡
return isBalanced(root.left) and isBalanced(root.right)
def height(node):
if node is None:
return 0
else:
left_height = height(node.left)
right_height = height(node.right)
return max(left_height, right_height) + 1
```
在这个例子中,`isBalanced`函数负责全局判断,`height`函数则用于计算单个节点的高度。
阅读全文