110. 平衡二叉树

110. Balanced Binary Tree

题目描述

给定一个二叉树,判断它是否是高度平衡的二叉树。

本题中,一棵高度平衡二叉树定义为: 一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1。

每日一算法2019/5/18Day 15LeetCode110. Balanced Binary Tree

示例 1:

给定二叉树 [3,9,20,null,null,15,7]
```
3
/ \
9 20
/ \
15 7
```
返回 true。

示例 2:

给定二叉树 [1,2,2,3,3,null,null,4,4]
```
1
/ \
2 2
/ \
3 3
/ \
4 4
```
返回 false。

Java 实现

class TreeNode {
int val;
TreeNode left;
TreeNode right; TreeNode(int x) {
val = x;
}
} public class Solotion {
public boolean isBalanced(TreeNode root) {
if (root == null) {
return true;
}
return Math.abs(depth(root.left) - depth(root.right)) <= 1 && isBalanced(root.left) && isBalanced(root.right);
} public int depth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(depth(root.left), depth(root.right)) + 1;
}
}

相似题目

参考资料

最新文章

  1. nginx日志分割脚本
  2. iOS 上架被拒原因保存
  3. TCP, Scoket, HTTP
  4. 内核编译选配(VMware篇)
  5. 【杂记】SQL篇
  6. Java NIO流 -- 缓冲区(Buffer,ByteBuffer)
  7. Java immutable class
  8. keystone系列二:keystone源码分析
  9. ios新特性
  10. CentOS 5.4下的Memcache安装步骤(Linux+Nginx+PHP+Memcached)
  11. javascript 如何获取return回来的对象值
  12. VC++6.0版本号程序转成VS2010版
  13. javascript 的bind/apply/call性能
  14. LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新
  15. QT信号和槽
  16. 移动GIS未来的前景GIS解决方案应用
  17. 为什么vertical-align不起作用
  18. IDirectDraw接口
  19. Entity Framework Core(EF Core) 最简单的入门示例
  20. iOS 轻击、触摸和手势的检测

热门文章

  1. 《挑战30天C++入门极限》C++中类的多态与虚函数的使用
  2. Spark设置自定义的InputFormat读取HDFS文件
  3. linux系统下常用的打包/解压缩包命令
  4. 2019 ASP.NET / ASP.NET Core 学习路线 (有中文翻译)
  5. div双击全屏,再双击恢复到原来的状态vue,js来做
  6. 小福bbs-冲刺日志(第七天)
  7. Windows平台上运行Tomcat
  8. Oracle审计表AUD$处理方法
  9. 借助中间件优化代码 将请求RequestId在服务端接收到请求在处理业务逻辑之前生成
  10. Java基础 if if-else if-else if-else 三种示例