LintCode | 93. 平衡二叉树
来源:互联网 发布:法国人接吻 知乎 编辑:程序博客网 时间:2024/05/16 17:07
给定一个二叉树,确定它是高度平衡的。对于这个问题,一棵高度平衡的二叉树的定义是:一棵二叉树中每个节点的两个子树的深度相差不会超过1。
题目链接
递归解决,递归函数每次返回两棵子数的深度,并进行比较,相等或相差仅为1则返回最大值,否则返回-1。用-1表示该子树已不平衡。
/** * Definition of TreeNode: * public class TreeNode { * public int val; * public TreeNode left, right; * public TreeNode(int val) { * this.val = val; * this.left = this.right = null; * } * } */public class Solution { /** * @param root: The root of binary tree. * @return: True if this Binary tree is Balanced, or false. */ public boolean isBalanced(TreeNode root) { if(getDepth(root) == -1) return false; else return true; } private int getDepth(TreeNode node) { if(node == null) return 0; int rightDepth = getDepth(node.right); int leftDepth = getDepth(node.left); if(leftDepth == -1 || rightDepth == -1) return -1; else if(rightDepth == leftDepth) return rightDepth + 1; else if(rightDepth - leftDepth == 1) return rightDepth + 1; else if(leftDepth - rightDepth == 1) return leftDepth + 1; else return -1; }}
0 0
- LintCode | 93. 平衡二叉树
- LintCode | 93. 平衡二叉树
- LintCode 93.平衡二叉树
- LintCode:平衡二叉树
- 平衡二叉树,lintcode
- lintcode平衡二叉树
- LintCode 平衡二叉树
- 平衡二叉树-LintCode
- lintcode--平衡二叉树
- 平衡二叉树-LintCode
- LintCode 平衡二叉树
- lintcode-平衡二叉树 -93
- LintCode 93-平衡二叉树
- lintcode balanced-binary-tree 平衡二叉树
- Lintcode-递归-93 平衡二叉树
- LintCode之93 平衡二叉树
- 【LintCode-93】平衡二叉树(Java实现-递归算法)
- 93.平衡二叉树
- 百炼2787
- windows 7 激活工具
- 如何将eclipse下R3-QUery源码项目导入到Intellij idea部署运行
- 设计模式--Singleton(转自http://cantellow.iteye.com/blog/838473)
- Java EE基础知识学习(二)
- LintCode | 93. 平衡二叉树
- System.exit()用法
- <Effective JavaScript>
- windows下揪出java程序占用cpu很高的线程 并找到问题代码 死循环线程代码
- 动态规划 最大的算式
- Java基础 面试题二
- 机器人SLAM算法漫谈
- 创建git 应用
- Bugly