【剑指OFFER】55 - II. 平衡二叉树
发布日期:2021-06-29 19:47:01
浏览次数:2
分类:技术文章
本文共 881 字,大约阅读时间需要 2 分钟。
题目:输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。
示例 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 。
限制:
0 <= 树的结点个数 <= 10000
答案:
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public boolean isBalanced(TreeNode root) { //从根节点判断是否是平衡子树,如果是返回该节点最深高度,否则返回-1 return high(root) >= 0; } public int high(TreeNode root){ if(root == null) return 0; int leftHigh = high(root.left), rightHigh = high(root.right); if(leftHigh >= 0 && rightHigh >= 0 && Math.abs(rightHigh - leftHigh) <= 1) return Math.max(leftHigh, rightHigh) + 1; else return -1; }}
转载地址:https://darkness.blog.csdn.net/article/details/115525363 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年04月14日 09时54分17秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Git学习(一):git 生成 patch的命令
2019-04-30
Gstreamer学习笔记(8):Gobject类对象
2019-04-30
Gstreamer学习笔记(7):plugin注册流程分析(超详细)
2019-04-30
Gstreamer学习笔记(6):如何创建gstreamer插件?
2019-04-30
AVI封装格式解析
2019-04-30
rmvb 文件格式解析
2019-04-30
C语言:setjmp和longjmp函数使用详解
2019-04-30
FFmpeg常用基本命令
2019-04-30
MPG(MPEG2 Program Stream)格式解析
2019-04-30
Gstreamer学习笔记(4):pad定义、连接、流动
2019-04-30
Gstreamer 学习笔记(3):GstElement状态
2019-04-30
Gstreamer学习笔记(9):message, even, signal区别
2019-04-30
Gstreamer 学习笔记(10):Gstvideodecoder
2019-04-30
Gstreamer学习笔记(11):typefind功能流程简单分析
2019-04-30
在MPEG之前
2019-04-30
MPEG-1
2019-04-30
MPEG-1中I、B、P帧的基本编码原理
2019-04-30
MPEG-2
2019-04-30
MPEG-2 数据位流与视像质量可变编码
2019-04-30
H.264/AVC简介
2019-04-30