文章目录
1.题目2.思路3.代码
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
)
def height(self
,root
):
if root
== None:
return 0
else:
return max(self
.height
(root
.left
),self
.height
(root
.right
))+ 1