平衡二叉树的定义是:二叉树的每个节点的左右子树的高度差的绝对值不超过 1,则二叉树是平衡二叉树。
所以一个平衡二叉树的子树也是平衡二叉树
# Definition for a binary tree node.
# class TreeNode:
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution:
def isBalanced(self, root: TreeNode) -> bool:
if not root:
return True
def high_tree(root):
if not root:
return 0
return max(high_tree(root.left),high_tree(root.right))+1
return abs(high_tree(root.left)-high_tree(root.right)) <= 1 and self.isBalanced(root.left) and self.isBalanced(root.right)
利用递归判断树的最大深度 利用递归满足平衡二叉树子树也是平衡二叉树的条件
|