判断二叉树是不是平衡二叉树
来源:互联网 发布:上市公司毛利率算法 编辑:程序博客网 时间:2024/06/10 00:20
判断二叉树是不是平衡二叉树 ,使用递归解法。
平衡二叉树有个特点,就是左右子树之差绝对值不能大于1,所以需要借助二叉树深度,之前求出过二叉树深度
(1)如果二叉树为空,返回真
(2)如果二叉树不为空,如果左子树和右子树都是AVL树并且左子树和右子树高度相差不大于1,返回真,否则返回假
package cn.edu.nwu.tree;/** * @author jcm * *时间 2016年9月16日 */public class TreeNodeIsAVL {public static void main(String[] args) {TreeNode root = CreateBinaryTree.createTreeNode();System.out.println(isVALRecursion(root));}/** * @author jcm * 判断二叉树是不是平衡二叉树 ,平衡二叉树有个特点,就是左右子树之差绝对值不能大于1,所以需要借助二叉树深度,之前求出过二叉树深度 * (1)如果二叉树为空,返回真 * (2)如果二叉树不为空,如果左子树和右子树都是AVL树并且左子树和右子树高度相差不大于1,返回真,否则返回假 * @param root * @return */private static boolean isVALRecursion(TreeNode root) {if(root == null){return true;}//求解左子树和右子树深度int leftDepth = GetTreeNodeDepth.getTreeNodeDepth(root.leftChild);int rightDepth = GetTreeNodeDepth.getTreeNodeDepth(root.rightRight);//左右子树绝对值之差,如果之差大于1,直接返回falseint diff = Math.abs(leftDepth-rightDepth);if(diff > 1){return false;}return isVALRecursion(root.leftChild) && isVALRecursion(root.rightRight);}}
0 0
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡[
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断是不是平衡二叉树
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- 判断二叉树是不是平衡二叉树
- Bootstrap_day1
- Lua初识(4)_判断语句
- Filtering JSON feeds from Spring 3's REST support using addMixInAnnotations
- Embedded Linux S3C2440 Environment Startup
- ssh查询分页(同页面的多个方法查询)的思路分析:
- 判断二叉树是不是平衡二叉树
- 如何在本地环境配置github
- Java编码
- 斐波那契数列通项公式
- Github的学习使用
- 王学岗app设计框架:mvc框架
- 生产者/消费者模式
- LoRa组网案例1:温度采集,主动上报
- .html(),.text()和.val()的差异总结