1.题目
输入一个二叉树,判断是否是平衡二叉树。
平衡二叉树:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。
2.思路
利用38题中判断二叉树最大深度的函数,左子树和右子树的深度差小于等于1即为平衡二叉树。
3.代码
class Solution(object):
def isBalanced(self, root):
if root == None:
return True
elif abs(self.height(root.left)-self.height(root.right))>1:
return False
else:
return self.isBalanced(root.left) and self.isBalanced(root.right)
# 38题代码,39题相同递归原理
def height(self,root):
if root == None:
return 0
else:
return max(self.height(root.left),self.height(root.right))+ 1