Leet Code OJ 110. Balanced Binary Tree [Difficulty: Easy]
来源:互联网 发布:苏州飚风软件注册码 编辑:程序博客网 时间:2024/05/02 01:36
题目:
Given a binary tree, determine if it is height-balanced.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
翻译:
给定一个二叉树,检测它是否是高度平衡的。
这个问题中,一个高度平衡的二叉树是定义在一个二叉树上,它的每个节点的两棵子树的高度相差都不超过1。
分析:
这其实就是判断是否是平衡二叉树。
平衡二叉树,又称AVL树。它或者是一棵空树,或者是具有下列性质的二叉树:它的左子树和右子树都是平衡二叉树,且左子树和右子树的高度之差之差的绝对值不超过1。
下面的做法,递归遍历每个节点,每次递归,都获取左右子树的高度进行判断,采用-1作为已经检测到不平衡的标志位,其余情况返回当前子树的高度,用作上一层递归判断。
代码:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */public class Solution { public boolean isBalanced(TreeNode root) { int depth=getDepth(root,0); return depth!=-1;//-1代表子树出现不平衡 } public int getDepth(TreeNode root,int length){ if(root==null){ return length; } int leftDepth=getDepth(root.left,length+1); int rightDepth=getDepth(root.right,length+1); if(leftDepth==-1||rightDepth==-1||leftDepth-rightDepth>1||rightDepth-leftDepth>1){ return -1; } return leftDepth>rightDepth?leftDepth:rightDepth; }}
2 0
- Leet Code OJ 110. Balanced Binary Tree [Difficulty: Easy]
- Leet Code OJ 226. Invert Binary Tree [Difficulty: Easy]
- Leet Code OJ 104. Maximum Depth of Binary Tree [Difficulty: Easy]
- Leet Code OJ 235. Lowest Common Ancestor of a Binary Search Tree [Difficulty: Easy]
- Leet Code OJ 102. Binary Tree Level Order Traversal [Difficulty: Easy]
- Leet Code OJ 107. Binary Tree Level Order Traversal II [Difficulty: Easy]
- Leet Code OJ 100. Same Tree [Difficulty: Easy]
- Leet Code OJ 101. Symmetric Tree [Difficulty: Easy]
- [leet code] Balanced Binary Tree
- [leet code] Balanced Binary Tree
- Leet Code OJ 292. Nim Game [Difficulty: Easy]
- Leet Code OJ 242. Valid Anagram [Difficulty: Easy]
- Leet Code OJ 231. Power of Two [Difficulty: Easy]
- Leet Code OJ 258. Add Digits [Difficulty: Easy]
- Leet Code OJ 283. Move Zeroes [Difficulty: Easy]
- Leet Code OJ 217. Contains Duplicate [Difficulty: Easy]
- Leet Code OJ 169. Majority Element [Difficulty: Easy]
- Leet Code OJ 263. Ugly Number [Difficulty: Easy]
- 协同过滤
- 代码规范工具-Checkstyle使用手册
- maven-pom文件详解
- android自定义一圆角ImageView
- Bootstrap 导航栏 分页 标签 徽标 警告框
- Leet Code OJ 110. Balanced Binary Tree [Difficulty: Easy]
- JAVA_99乘法表(BufferFly)打印
- 基于栈虚拟机和基于寄存器虚拟机的比较
- 工具类一:字符串工具类
- iOS OC语言: Block底层实现原理
- MySQL 5.7 的多源复制
- 调整UILabel的行间距
- leetcode 216. Combination Sum III
- Android布局善用tools工具