字节考过的面试题!你真的会吗?110. 平衡二叉树(含不同解法)
创作时间:
作者:
@小白创作中心
字节考过的面试题!你真的会吗?110. 平衡二叉树(含不同解法)
引用
CSDN
1.
https://blog.csdn.net/2301_79417489/article/details/145522832
本文将详细介绍如何判断一个二叉树是否是平衡二叉树,包括暴力求解和优化解法两种方法。通过本文的学习,你将能够掌握平衡二叉树的判断方法,并能够编写相应的代码实现。
第一次做不用力求优化,没能力优化就先暴力解题,等能暴力解出来再递进到优化。
题目链接: 110. 平衡二叉树
题目: 给定一个二叉树,判断它是否是 平衡二叉树。
解法一:暴力求解O(N^2)
暴力解法的思路 :对于每个节点,计算其左右子树的高度,检查高度差是否超过1。如果所有节点都满足这个条件,那么整个树就是平衡的。
但这个方法的时间复杂度很高,因为每个节点的高度会被重复计算多次。例如,对于根节点,需要计算左右子树的高度,而这两个子树的高度计算又会递归到底层节点,导致时间复杂度为O(n^2),这在节点数较多时效率不高。
- 核心思路
暴力求解的思路不会通过,会超时。
step1. 平衡二叉树定义
判断是否为平衡二叉树,需 同时满足 以下条件:
- 每个节点 的左右子树的高度差不超过1
- 每个节点 的左右子树本身也是平衡二叉树
step2. 实现要点
- 定义一个方法用于求树的高度。
- 递归遍历树的每个节点。
- 求每个节点的左右子树各自的高度,判断是不是平衡二叉树。
- 细化要点
2.1 定义一个方法用于求树的高度。
//求一棵树的高度
private int maxDepth(TreeNode root) {
if (root == null){
return 0;
}
int leftCount = maxDepth(root.left);
int rightCount = maxDepth(root.right);
return Math.max(leftCount,rightCount) + 1;
}
2.2 终止条件(平衡二叉树的定义)
节点为null,返回true。
//空树 if (root == null){ return true; }
每个节点的左右子树的高度差超过1,返回false。
//求出左右子树高度的最大值 int depth = Math.abs(maxDepth(root.left)-maxDepth(root.right)); //左右子树的高度差不超过1 if (depth > 1){ return false; }
左右子树本身是平衡二叉树,返回true。
//左右子树本身也是平衡二叉树 return isBalanced(root.left) && isBalanced(root.right);
解法二:优化O(N)
高度重复求,导致复杂度过高,优化从减少重复计算高度入手。那就计算高度的同时判断是否平衡。在求高度的方法内加上判断语句即可。
【代码演示】
class Solution {
public boolean isBalanced(TreeNode root) {
//空树
if (root == null){
return true;
}
return maxDepth(root) != -1;
}
//求一棵树的高度
private int maxDepth(TreeNode root) {
if (root == null){
return 0;
}
int leftCount = maxDepth(root.left);
if (leftCount == -1){
return -1;
}
int rightCount = maxDepth(root.right);
if (rightCount == -1 ||Math.abs(leftCount - rightCount) > 1){
return -1;
}
return Math.max(leftCount,rightCount) + 1;
}
}
热门推荐
心脏造影能检查出什么毛病
电缆人必知的各种电缆的用途及规格型号
劳动法案例:员工休病假,公司不发年终奖!
辽宁召开财税合规防风险培训会 助外向型企业拓展海外市场
大豆玉米带状复合种植:保障国家粮食安全的新路径
一岁孩子可以喝金银花菊花水吗?医生的专业解答来了
科普 | 车载以太网与5G技术的融合应用
香蕉含有的什么元素远高于其他水果
陈果教授的一段话太治愈了:余生不要和任何人争辩,哪怕别人说一加一等于七
强基计划综合素质评价是指什么?给2025年高三学生的解读
买房时预告登记的重要性与办理流程
魔力宝贝手游职业加点攻略 职业怎么加点
30万苏军撤离旅大基地,留下了多少武器装备?出动一整个兵团接收
应对气喘的实用技巧与管理方法,助你呼吸自如生活美好
车辆抵押的具体流程是什么?(长沙车辆抵押手续办理流程)
无溶剂环氧涂料的防腐应用
255毫米是多少码的鞋子?鞋码换算与测量指南
关于教育综合测验难度的探讨:如何衡量与设置合理的测验难度?
我国燃气管网乘“数”而上、向“智”而行 强“里子”、长“面子”、惠民生
这些简单的运动有益于多种疾病康复!转发收藏
智慧之旅:老马识途的典故与启示
断崖式分手揭秘:一文读懂TA的内心世界到底在想什么?
如何确保品质管控流程的有效性和持续改进?
欧洲卡车模拟2如何开灯 欧洲卡车模拟2怎样开灯
后世如何评价唐玄宗?他有哪些轶事典故?
古时商贾:探索古代最盈利的行当
投资移民澳洲将有五大途径
美国移民申请中的经济担保
承兑汇票的风险有哪些?如何降低承兑汇票的风险?
如何解决平板电脑开机黑屏问题(探索开机黑屏的原因)