leetcode_110. Balanced Binary Tree 判断一棵二叉树是否为平衡二叉树
来源:互联网 发布:河南豫广网络有线电视 编辑:程序博客网 时间:2024/05/13 12:12
题目:
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
题意:
给定一棵二叉树,判断它是否为平衡二叉树。 平衡二叉树的定义是,它的每个节点的左右子树高度差不超过1
代码:
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def GetTreeDeepth(self, root): #计算二叉树的深度
"""
:type root: TreeNode
:rtype: bool
"""
if root == None :
return 0 #此处的return为递归的出口
return 1 + max(self.GetTreeDeepth(root.left), self.GetTreeDeepth(root.right)) #此处的递归为递归的迭代
def isBalanced(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if root == None :
return True
else :
leftdeep = self.GetTreeDeepth(root.left)
rightdeep = self.GetTreeDeepth(root.right)
if leftdeep - rightdeep > 1 or rightdeep - leftdeep > 1 : #从根节点往下判断,如果左右子树高度超过了1,则直接返回false
return False #此处的return为递归的出口,到达此处是需要满足条件的
else :
return self.isBalanced(root.left) and self.isBalanced(root.right) #此处的return为递归判断,运用递归出口返回的结果
笔记:
更高级的算法,见http://blog.csdn.net/feliciafay/article/details/18348065
- leetcode_110. Balanced Binary Tree 判断一棵二叉树是否为平衡二叉树
- LeetCode_110.Balanced Binary Tree_平衡二叉树
- Balanced Binary Tree 判断是否为平衡二叉树
- Balanced Binary Tree:判断一棵树是否为平衡二叉树
- LeetCode(Balanced Binary Tree ) 判断一个二叉树是否为平衡二叉树
- 二叉树的深度&判断一棵二叉树是否是平衡二叉树&110. Balanced Binary Tree
- Balanced Binary Tree 判断是否平衡二叉树 @LeetCode
- 110. Balanced Binary Tree | 判断是否是平衡二叉树
- Balanced Binary Tree 判断是否为平衡二叉树 解法集合
- LeetCode 判断一个数是否为平衡二叉树 Balanced Binary Tree
- 是否是平衡二叉树 110. Balanced Binary Tree
- leetcode -- 110. Balanced Binary Tree 【二叉树是否平衡】
- Balanced Binary Tree --判断平衡二叉树(重重)
- Balanced Binary Tree 平衡二叉树的判断
- LeetCode:Balanced Binary Tree(平衡二叉树的判断)
- 110. Balanced Binary Tree (平衡二叉树判断)
- 判断一棵二叉树是否为平衡二叉树
- Balanced Binary Tree 二叉平衡树
- JS:字符串和数字之间的相互转换
- C# 创建HttpServer
- maven 本地仓库的配置以及如何修改默认.m2仓库位置
- 【Linux】使用update-alternatives命令进行版本的切换
- python-numpy-01
- leetcode_110. Balanced Binary Tree 判断一棵二叉树是否为平衡二叉树
- 【NOIP2015】Day2T3 运输计划
- JDK8 新特性流式数据处理
- 正确使用Android性能分析工具——TraceView
- 2016/10/28学习工作日志
- Vuforia开发入门四-自定义标识
- UVA 11020 Efficient Solutions(BST multiset实现)
- iOS简单动画效果:闪烁、移动、旋转、路径、组合、
- 大话jQuery选择器