题目描述:
题解:
参考:https://blog.csdn.net/qq_17550379/article/details/82081501
1.定义一个求二叉树深度的函数depth,二叉树深度=max(左子树深度,右子树深度)+1 2.root=None则返回True。否则分别调用depth函数获取root左右子树的深度,判断是否平衡。 3.需要注意的一点是,平衡二叉树左右子树深度差距小于1的要求是对于所有节点而言,不只是根结点,因此当根节点root满足要求之后,对其左右子树递归调用isBalanced函数进行判断。 class Solution(object): def isBalanced(self, root): if root==None: return True def depth(node): if node==None: return 0 return max(depth(node.left),depth(node.right))+1 if abs(depth(root.left)-depth(root.right))>1: return False return self.isBalanced(root.left) and self.isBalanced(root.right)