【剑指offer系列之二叉树】判断是否为平衡二叉树
来源:互联网 发布:js伪类选择器 编辑:程序博客网 时间:2024/05/22 05:23
题目:
平衡二叉树的性质为:要么是一颗空树,要么任何一个节点的左右子树高度差的绝对值不超过1。给定一棵二叉树的头结点head,判断这棵二叉树是否为平衡二叉树。要求时间复杂度为O(N)
思路:
采用后序遍历。对于任何节点,先遍历其左子树,并用depth[ ]数组保存遍历的深度,同时返回该节点是否为平衡二叉树,如果不是,整棵树退出遍历,直接返回false;如果是,则遍历右子树。
public class Solution { public boolean IsBalanced_Solution(TreeNode root) { return isBalance(root,new int[1]); } public boolean isBalance(TreeNode root,int []depth){ if(root==null){ depth[0]=0; return true; } boolean left=isBalance(root.left,depth); int leftdepth=depth[0]; boolean right=isBalance(root.right,depth); int rightdepth=depth[0]; depth[0]=Math.max(leftdepth+1,rightdepth+1); if(left&&right&&Math.abs(leftdepth-rightdepth)<=1)return true; return false; }}
阅读全文
0 0
- 【剑指offer系列之二叉树】判断是否为平衡二叉树
- 剑指offer系列源码-判断是否是平衡二叉树
- 《剑指offer》:[39-1]判断是否为平衡二叉树
- 剑指Offer系列-面试题39-2:判断一棵树是否为平衡二叉树
- 剑指offer 39-二叉树的深度 判断二叉树是否为平衡二叉树
- 剑指offer系列之三十八:判断是否是平衡二叉树
- 剑指offer系列之38:判断是否是平衡二叉树
- 【剑指offer】之判断二叉树平衡
- 剑指offer(41):判断二叉树是否为平衡二叉树(AVL树)
- 剑指offer 面试题39 求二叉树深度|判断是否为平衡二叉树
- 剑指offer—关于判断二叉树是否为平衡二叉树
- 剑指offer 39.判断二叉树是否为平衡二叉树
- 剑指offer 39. 二叉树的深度和判断是否为平衡二叉树
- 【二叉树】判断二叉树是否为平衡二叉树
- 剑指offer:判断是否是平衡二叉树
- 二叉树系列---判断二叉树是否为平衡二叉树
- 【剑指offer】判断二叉树是否平衡(左右子树高度差最多为1)
- 剑指Offer----面试题39(2):判断是否为平衡二叉树
- 剖析ActivityManagerService
- 基于OpenCV的图像模糊与否检测
- 解决Hibernate:could not initialize proxy
- redis配置文件的介绍
- 单点登录(二)----实战------简单搭建CAS---测试认证方式搭建CAS
- 【剑指offer系列之二叉树】判断是否为平衡二叉树
- JPA的一对多映射(单向)
- 注册Tomcat为系统服务
- python 生日悖论概率计算。
- mysql do和select 的区别与联系
- jvm 参数设置
- 基于Socket.IO实现Android聊天功能
- CAD文件(dwg)的加载-ArcEngine
- 在ubuntu16.04_X86-64环境下快速搭建GPU版本的tensorflow