题目描述
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
解法一:自底向上法/辅助函数法
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def IsBalanced_Solution(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
return self.helper(root) != -1
# 自底向上
def helper(self, root):
if not root:
return True
left = self.helper(root.left)
if left == -1:
return -1
right = self.helper(root.right)
if right == -1:
return -1
if abs(left-right) > 1:
return -1
else:
return max(left, right) + 1