解题思路:平衡树是一棵树中每个节点的左右子树的高度差不大于1。递归,面向对象,self。
两个函数,一个求某个节点的高度,另一个递归求书否为平衡树。
<span style="font-family:FangSong_GB2312;font-size:18px;">class Solution(object):
def isBalanced(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if root is None:
return True
else:
l = self.treeDepth(root.left)
r = self.treeDepth(root.right)
if abs(l-r) > 1:
return False
else:
return self.isBalanced(root.left) and self.isBalanced(root.right)
def treeDepth(self,root):
#lt,rt
if root is None:
return 0
else:
lt = self.treeDepth(root.left)
rt = self.treeDepth(root.right)
return max(lt,rt)+1</span>