benjamin.li的小屋

认真投入的做一件事情,让这件事情有结果

【剑指offer】判断是否是平衡二叉树

题目描述

输入一棵二叉树,判断该二叉树是否是平衡二叉树。


思路:

判断树的左右分支最大深度差是否大于1,然后递归

# -*- 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
        if not pRoot:
            return True
        if abs(self.MaxDepth(pRoot.left)-self.MaxDepth(pRoot.right)) > 1:
            return False
        return self.IsBalanced_Solution(pRoot.left) and self.IsBalanced_Solution(pRoot.right)
        
    def MaxDepth(self, pRoot):
        if not pRoot:
            return 0
        return 1 + max(self.MaxDepth(pRoot.left), self.MaxDepth(pRoot.right))

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_38111819/article/details/79944917
上一篇【剑指offer】数字在排序数组中出现的次数
下一篇【剑指offer】数组中只出现一次的数字
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭