Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
判断树是否平衡~要维护树的深度,并且比较左右子树的深度差~代码如下~
class Solution:
# @param root, a tree node
# @return a boolean
def isBalanced(self, root):
return self.helper(root) >= 0
def helper(self, root):
if root is None: return 0
left = self.helper(root.left)
right = self.helper(root.right)
if left < 0 or right < 0 or abs(left - right) > 1:
return -1
return max(left, right) + 1