二叉树的深度以及判断平衡二叉树
来源:互联网 发布:优化设计 编辑:程序博客网 时间:2024/06/05 05:26
输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度
–一个根节点的左右有几个子节点,而该树的深度就是求左右子节点的最大一个+1
public int TreeDepath(TreeNode pRoot){ if(pRoot==null) return 0; if(TreeDepath(pRoot.left)>=TreeDepath(pRoot.right)){ return 1+TreeDepath(pRoot.left); }else{ return 1+TreeDepath(pRoot.right); } }
输入一棵二叉树,判断该二叉树是否是平衡二叉树。
平衡二叉树:它是一 棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
–先求出左右两个子树的深度,然后他们的深度差的绝对值>1(我编程的时候一直写的是<=1,运行只通过28.5%,弄不懂不为啥?等以后弄清楚在写清楚),还有一点最重要的是性质中说了左右两个子树都是一棵平衡二叉树,所以还要判断
IsBalanced_Solution(root.left)&&IsBalanced_Solution(root.right)public class Solution { public boolean IsBalanced_Solution(TreeNode root) { if(root==null){ return true; } if(Math.abs(TreeDepath(root.left)-TreeDepath(root.right))>1) return false; return IsBalanced_Solution(root.left)&&IsBalanced_Solution(root.right); } public int TreeDepath(TreeNode pRoot){ if(pRoot==null) return 0; if(TreeDepath(pRoot.left)>=TreeDepath(pRoot.right)){ return 1+TreeDepath(pRoot.left); }else{ return 1+TreeDepath(pRoot.right); } }}
阅读全文
0 0
- 二叉树的深度以及判断平衡二叉树
- 二叉树的深度以及判断平衡二叉树
- 二叉树的深度以及判断二叉树是否为平衡二叉树
- 三:求二叉树的深度以及判断二叉树是否平衡
- 39 二叉树的深度和宽度以及判断是否是平衡二叉树
- 二叉树深度、平衡二叉树的判断
- 【笔试】50、二叉树的深度&&判断平衡二叉树
- 二叉树的深度,判断是否是平衡二叉树
- python二叉树深度 判断平衡树
- 剑指offer面试题39:二叉树深度以及判断平衡二叉树
- 剑指offer 39-二叉树的深度 判断二叉树是否为平衡二叉树
- 计算二叉树的深度,判断二叉树是否是平衡二叉树
- 二叉树的基础(遍历、深度、二叉树相等、判断平衡二叉树)
- java实现 二叉树的深度&判断二叉树是否是平衡二叉树
- 计算二叉树的深度+判断二叉树是否是平衡二叉树
- 二叉树的深度求值和判断是否是平衡
- 平衡二叉树的判断
- 平衡二叉树的判断
- 使用python在图片中如何添加文字?
- RH124-第一节-走进Linux以及基本操作
- UVA-10935Throwing cards away I
- LeetCode 637 Average of Levels in Binary Tree(二叉树层序遍历)
- TypeError: newRawData.forEach is not a function问题解决
- 二叉树的深度以及判断平衡二叉树
- Segmentfault 内容精选
- 浅谈ZKW线段树
- 用递归写最小钱币数
- H
- java 将list按照指定数量分成小list
- 暑期学习记录02
- ViewPager的 setOffscreenPageLimit(0) 方法
- 如何在Android中使用Realm数据库