python判断平衡二叉树代码
时间: 2023-12-04 19:37:54 浏览: 86
平衡二叉树代码
5星 · 资源好评率100%
以下是Python判断平衡二叉树的代码:
```
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
def treeDepth(root):
if not root:
return 0
return max(treeDepth(root.left), treeDepth(root.right)) + 1
if not root:
return True
leftTreeDepth = treeDepth(root.left)
rightTreeDepth = treeDepth(root.right)
if abs(leftTreeDepth - rightTreeDepth) > 1:
return False
return self.isBalanced(root.left) and self.isBalanced(root.right)
```
该代码使用递归的方式判断二叉树是否平衡。首先定义一个函数`treeDepth`,用于计算二叉树的深度。然后在主函数中,先判断根节点是否为空,如果为空则返回True。接着计算左右子树的深度,如果深度差大于1,则返回False。最后递归判断左右子树是否平衡,如果都平衡则返回True,否则返回False。
阅读全文