题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树:每一个结点的左右子树的高度之差不会超过1。
因此,我们只需要获得根节点的左右子树高度,再对此高度进行判断即可
class Solution:
def IsBalanced_Solution(self, pRoot):
# write code here
def TreeDepth(root):#获取root树的高度
if root==None:return 0
return max(TreeDepth(root.left),TreeDepth(root.right))+1
if pRoot==None:#结点为空说明是平衡二叉树
return True
left=TreeDepth(pRoot.left)
right=TreeDepth(pRoot.right)
if abs(left-right)>1:
return False
return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)