题解 | #判断是不是平衡二叉树#
判断是不是平衡二叉树
http://www.nowcoder.com/practice/8b3b95850edb4115918ecebdf1b4d222
很不优美的 python 代码
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pRoot TreeNode类
# @return bool布尔型
#
class Solution:
def dfs(self, root, cnt):
# 计算图的深度
if not root:
return cnt
cnt += 1
return max(self.dfs(root.left, cnt), self.dfs(root.right, cnt))
def IsBalanced_Solution(self , root: TreeNode) -> bool:
# write code here
if not root:
return True
left = self.dfs(root.left, 1)
right = self.dfs(root.right, 1)
return self.IsBalanced_Solution(root.left) and self.IsBalanced_Solution(root.right) and abs(left - right) <= 1