原题链接:https://leetcode-cn.com/problems/balanced-binary-tree/,https://leetcode-cn.com/problems/ping-heng-er-cha-shu-lcof/
解题思路:递归。左右子树的高度差不大于1,且左右子树都是平衡二叉树
1 # Definition for a binary tree node. 2 # class TreeNode: 3 # def __init__(self, val=0, left=None, right=None): 4 # self.val = val 5 # self.left = left 6 # self.right = right 7 class Solution: 8 def isBalanced(self, root: TreeNode) -> bool: 9 def height(root: TreeNode) -> int: 10 if not root: 11 return 0 12 return max(height(root.left), height(root.right)) + 1 13 14 if not root: 15 return True 16 return abs(height(root.left) - height(root.right)) <= 1 and self.isBalanced(root.left) and self.isBalanced(root.right)