题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
思路:使用一个辅助函数计算树的深度,然后递归判断左右子树的深度是否是满足差值不超过1的条件
# 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 judge(node):
if not node:
return 0
return 1 + max(judge(node.left), judge(node.right))
if not root:
return True
else:
left = judge(root.left)
right = judge(root.right)
return (left - right <= 1) and (left - right >= -1) and self.isBalanced(root.left) and self.isBalanced(root.right)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。