題目描述:
輸入一棵二叉樹,判斷該二叉樹是否是平衡二叉樹。
思路:
利用後序求深度,可以避免重複求深度。
代碼
# -*- 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
self.flag = True
self.dep(pRoot)
return self.flag
def dep(self,root):
if not root:
return 0
ld = self.dep(root.left)
rd = self.dep(root.right)
if abs(ld-rd)>1:
self.flag = False
return ld+1 if ld>rd else rd+1