平衡二叉树(java版)
来源:互联网 发布:echarts.min.js下载 编辑:程序博客网 时间:2024/05/11 15:35
【题目描述】输入一棵二叉树,判断该二叉树是否是平衡二叉树。
注:注意平衡二叉树和平衡二叉搜索树的区分。有的书中混淆了两个概念。这里的平衡二叉树只关注是否平衡。
【解题思路】
//1. 平衡二叉树的定义是,满足任何一个节点的左右子树高度差都不大于1
//2. 递归处理。先判断根节点是否满足左右子树高度差的关系。然后判断左子树是否满足平衡二叉树的定义,然后是判断右子树。只有所有的节点都满足平衡二叉树的定义,则该树为平衡二叉树。
//3. 当前节点的高度也是一个递归的值,为其左子树和右子树高度中的最大值+1
public class Solution { public boolean IsBalanced_Solution(TreeNode root) { boolean flag=false; if(root !=null){ int depthDiff = Math.abs(getDepth(root.left)-getDepth(root.right)); if(depthDiff <= 1){ flag = true; } flag = flag && IsBalanced_Solution(root.left) && IsBalanced_Solution(root.right); }else{ flag = true; } return flag; } //求当前节点的高度 public int getDepth(TreeNode root){ int max = 0; if(root != null){ max = Math.max(getDepth(root.left), getDepth(root.right))+1; } return max; }}
阅读全文
0 0
- 平衡二叉树(java版)
- 二叉平衡树(Java)
- 平衡二叉树 java
- 平衡二叉树-Java
- 平衡二叉树 java
- 平衡二叉查找树(JAVA)
- 平衡二叉树(Java实现)
- 判断平衡二叉树(JAVA)
- java --平衡二叉树实现
- java排序--平衡二叉树
- 二叉树平衡检查(Java)
- JAVA二叉树平衡检测
- java实现二叉平衡树
- 平衡二叉树Java实现
- 平衡二叉树java实现
- JAVA实践自平衡二叉树(AVL树)
- Java基础 - 平衡二叉查找树(AVL树)
- 平衡二叉树(AVL树)算法 Java实现
- matlab所见即所得式保存图片
- 开启技术博客之旅
- 交换机接口的access与trunk
- NSValue和NSNumber和NSString
- data analytics
- 平衡二叉树(java版)
- postgresql常用技术(一、函数运算符)
- Eclipse去除jquery引入错误
- 面试题11. 数值的整数次方
- Java高并发,如何解决,什么方式解决
- DOS上登陆FTP的命令和步骤(ftp命令全集)
- 分割文件名 _splitpath() 函数讲解
- 如何判断WIFI是否可以上网
- iOS 10.3下解决Charles抓包ssl证书信任问题