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

原创 2018年04月15日 13:35:44

题目描述

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


思路:

判断树的左右分支最大深度差是否大于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

数据结构基础系列(6):树和二叉树

-
  • 1970年01月01日 08:00

剑指OFFER——判断一棵树是否是平衡二叉树 java实现

剑指OFFER——判断一棵树是否是平衡二叉树  java实现 题目描述:输入一棵二叉树,判断该二叉树是否是平衡二叉树。 题目解析:首先要明白平衡二叉树的性质才做判断:平衡二叉树就是左子树和右子树的...
  • u013276277
  • u013276277
  • 2017-11-19 16:52:44
  • 146

剑指offer:判断二叉树是不是平衡二叉树(java)

题目:输入一棵二叉树的根节点,判断该树是不是平衡的二叉树。如果某二叉树中任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。     有了求二叉树的深度的经验之后再解决这个问题,我们很容易...
  • abc7845129630
  • abc7845129630
  • 2016-10-06 18:48:19
  • 4557

剑指offer—关于判断二叉树是否为平衡二叉树

判断一颗二叉树是否为平衡二叉树,当这到面试题摆在我们眼前的时候,我们需要进行思考,二叉树满足平衡二叉树的条件是什么,就是对于每一个节点,它的右子树深度减去左子树的深度的绝对值必须是小于2才行。对于这个...
  • qq_26768741
  • qq_26768741
  • 2016-10-23 20:41:17
  • 2889

牛客:剑指offer:平衡二叉树 (Java)

题目描述: 解析: 因为我是看了牛客上leetcode的那些题,然后才来看剑指offer的,剑指offer里基本都是leetcode上的原题,所以已经会做了。 这个题是对上一个题(求二叉...
  • d12345678a
  • d12345678a
  • 2016-12-10 16:15:34
  • 290

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

题目:输入一个二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 剑指offer上给的第二种思路,用后序遍历真的是将递归发...
  • mmc_maodun
  • mmc_maodun
  • 2014-05-28 08:22:06
  • 3135

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

这种写法,效率比较高,每一个节点只访问一次。 struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right;...
  • u010889616
  • u010889616
  • 2015-10-06 18:37:39
  • 404

剑指offer面试题之判断一颗二叉树是不是平衡二叉树

1,题目: 输入一棵二叉树,判断该二叉树是否是平衡二叉树。 2,思想: 考虑树为空的情况; (1)算左右子树的深度,再相减,若等于-1,1和0即为平衡二叉树,若不是则为否。 则问题就转化...
  • zzuchengming
  • zzuchengming
  • 2016-03-18 14:32:29
  • 334

leetcode的判断一个二叉树是否是平衡树

110. Balanced Binary Tree   Given a binary tree, determine if it is height-balanced. ...
  • justperseve
  • justperseve
  • 2016-10-18 22:10:01
  • 762

剑指offer之平衡二叉树(Python)

输入一棵二叉树,判断该二叉树是否是平衡二叉树。
  • u010636181
  • u010636181
  • 2017-10-24 23:27:38
  • 130
收藏助手
不良信息举报
您举报文章:【剑指offer】判断是否是平衡二叉树
举报原因:
原因补充:

(最多只允许输入30个字)