题目:输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树:平衡二叉查找树,也称AVL树。
它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
递归。
代码:
class Solution:
def __init__(self):
self.balance = True
def find(self , root):
self.func(root)
return self.balance
def func(self , root):
if not root:
return 0
left = self.func(root.left)
right = self.func(root.right)
if abs(left - right) > 1 and self.balance:
self.balance = False
return max(left , right) + 1