剑指offer全集详解python版——平衡二叉树

题目描述:
输入一棵二叉树,判断该二叉树是否是平衡二叉树。

思路:

利用后序求深度,可以避免重复求深度。

代码

# -*- 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
            

你可能感兴趣的:(算法)