题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222
''' 判断条件:1)空跟点为True 2)左右子树的深度差<=1
所以:1) if pRoot is None: return True 2)定义二叉树深度函数 左右子树分别递归该函数,判断深度差即可
'''
-- coding:utf-8 --
class TreeNode:
def init(self, x):
self.val = x
self.left = None
self.right = None
class Solution: def IsBalanced_Solution(self, pRoot): # write code here if pRoot is None: return True
def depth(self,pRoot):
if pRoot is None:
return 0
left=depth(self, pRoot.left)
right=depth(self,pRoot.right)
return max(left,right)+1
left_depth=depth(self, pRoot.left)
right_depth=depth(self, pRoot.right)
if abs(left_depth-right_depth)>1:
return False
return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)
英雄游戏成长空间 36人发布