牛客网上的剑指 offer的在线编程:
题目描述:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
# -*- coding: utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def getDepth(self , Root):
if Root == None:
return 0
ldepth = self.getDepth(Root.left)
rdepth = self.getDepth(Root.right)
return max(ldepth, rdepth) + 1
def IsBalanced_Solution(self, pRoot):
if not pRoot:
return True
ldepth = self.getDepth(pRoot.left)
rdepth = self.getDepth(pRoot.right)
diff = ldepth - rdepth
if diff > 1 or diff < -1:
return False
return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)