# class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None # # # @param root TreeNode类 # @return bool布尔型 # class Solution: def isBalanced(self , root ): # write code here #判空,空则是平衡二叉树 if not root : return True def maxHeight(r): #向下遍历到空结点,其高度为0 if not r : return 0 #计算左右子树的高度 l_height = maxHeight(r.left) r_height = maxHeight(r.right) #如果结点的左右子树存在不平衡的子结点,则其直接返回-1 if l_height == -1 or r_height == -1: return -1 #子树都是平衡的,则计算该结点高度 height = max(l_height,r_height)+1 #判断该结点是否平衡,否则将高度置为-1 if abs(l_height-r_height) > 1 : height = -1 return height h = maxHeight(root) if h > 0: return True return False