为了节省时间,我们只需判断左右两个子树是否都是一棵平衡二叉树,当递归到高度差大于1时就返回-1,不用再递归下去浪费时间了

class Solution:
    def IsBalanced_Solution(self, pRoot):
        # write code here
        def get_depth(root):
            if not root:
                return 0
            left=get_depth(root.left)
            right=get_depth(root.right)
            if left==-1 or right==-1:
                return -1
            if abs(left-right)<=1:
                return max(left,right)+1
            else:
                return -1
        if not pRoot:
            return True
         return get_depth(pRoot)!=-1