题目描述
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。
给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
# -*- coding:utf-8 -*-
class TreeNode:
def __init__(self, x):
self.val = x
self.left = None
self.right = None
class Balance:
def isBalance(self, root):
if root is None:
return True
if abs(self.get_length(root.left)-self.get_length(root.right))>1:
return False
return self.isBalance(root.left) and self.isBalance(root.right)
def get_length(self,root):
if root is None:
return 0
return 1+max(self.get_length(root.left),self.get_length(root.right))