二叉树平衡检查(Java)
2015-08-25 12:29
676 查看
题目描述
实现一个函数,检查二叉树是否平衡,平衡的定义如下,对于树中的任意一个结点,其两颗子树的高度差不超过1。给定指向树根结点的指针TreeNode* root,请返回一个bool,代表这棵树是否平衡。
package com.msjd.tree; public class Balance { public boolean isBalance(TreeNode root) { // write code here if(root == null)return true; // 递归基 int diff = getHight(root.left) - getHight(root.right); if(Math.abs(diff) > 1)return false; else return isBalance(root.left) && isBalance(root.right); } public int getHight(TreeNode root) { // write code here if(root == null)return 0; return Math.max(getHight(root.left), getHight(root.right)) + 1; } }
相关文章推荐
- js java正则表达式替换手机号4-7位为星*号
- Java 内部类分析
- Java IO(二)
- SpringMVC图片文件上传功能实现
- Eclipse中只用git上传代码到OSChina进行代码管理
- java系统学习(五) --------java类和对象的定义
- java系统学习(五) --------java类和对象的定义
- Java中boolean型变量的默认值问题
- eclipse目录层次表示不同于SourceInsight
- 对象引用与对象的区别
- springmvc+ajaxFileUpload上传文件(前后台彻底分离的情况下)
- java中一个char类型字符能表示世界上所有语言的所有字符吗?
- maven与springMVC之基本配置
- Java正则表达式中的特殊构造
- eclipse的设置和优化
- java中最常用jar包的用途说明
- Spring学习(一)ioc理解
- JDK配置环境变量
- 通过Java自带的API获取未安装的apk签名信息
- JAVA并发编程5_线程状态