Balanced Binary Tree
平衡树注意两点,一个左右高度差不超过1,一个自己的左右子树都是平衡树
class Solution(object):
def isBalanced(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
return self.helper(root)[0]
def helper(self, root):
if not root:
return (True, 0)
left = self.helper(root.left)
right = self.helper(root.right)
if abs(left[1] - right[1]) <= 1 and left[0] and right[0]:
return (True, max(left[1], right[1]) + 1)
return (False, max(left[1], right[1]) + 1)