题目
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
思路
平衡二叉树左右深度不超过1
代码
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def IsBalanced(self, pRoot):
if pRoot:
left = self.IsBalanced(pRoot.left)
right = self.IsBalanced(pRoot.right)
if left[0] and right[0] and abs(left[1] - right[1]) <= 1:
return True, max(left[1], right[1]) + 1
else: return False, 0
else: return True, 0
def IsBalanced_Solution(self, pRoot):
# write code here
return self.IsBalanced(pRoot)[0]