题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路:
判断树的左右分支最大深度差是否大于1,然后递归
# -*- 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 not pRoot:
return True
if abs(self.MaxDepth(pRoot.left)-self.MaxDepth(pRoot.right)) > 1:
return False
return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)
def MaxDepth(self, pRoot):
if not pRoot:
return 0
return 1 + max(self.MaxDepth(pRoot.left), self.MaxDepth(pRoot.right))