Balanced Binary Tree
# Definition for a binary tree node
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# @param root, a tree node
# @return a boolean
def isBalanceHelp(self, root):
if root == None:
return (True, 0)
le = self.isBalanceHelp(root.left)
if le[0] == False: return le
ri = self.isBalanceHelp(root.right)
if ri[0] == False: return ri
ret = (-1 <= abs(le[1] - ri[1]) <= 1, max(le[1], ri[1]) + 1)
return ret
def isBalanced(self, root):
return self.isBalanceHelp(root)[0]