当前位置: 首页 > news >正文

二叉树的高度和判断平衡二叉树

LCR 176. 判断是否为平衡二叉树

利用递归得出结果,平衡二叉树成立的条件:左子树和右子树之差的绝对值小于等于 1,也就是当左子树高度 - 右子树高度的差值等于 0或者等于1的时候该平衡二叉树成立。

那么我们可以利用负数作为不成立的返回结果,当某个子二叉树不成立的时候返回 -1 给父节点,父节点再返回给其父节点(该过程递归会自动完成)。

因此我们只需要计算左右子树的高度以及做一些边界条件的判断即可判断是否为平衡二叉树

public boolean isBalanced(TreeNode root) {return getHeight(root) != -1;
}
// 获取树的高度
private int getHeight(TreeNode node) {if(node == null) return 0;int left = getHeight(node.left);if(left == -1) return -1;int right = getHeight(node.right);if(right == -1 || Math.abs(left - right) > 1) return -1;return Math.max(left, right) + 1; 
}

LCR 175. 计算二叉树的深度

也是使用递归计算树的高度

+1是因为每往下层“递”的时候,层数是增加的,而我们在计算树的深度是以树的最深的深度作数的,因此还要比较最大值

public int calculateDepth(TreeNode root) {if(root == null) return 0;int left = calculateDepth(root.left);int right = calculateDepth(root.right);return Math.max(left, right) + 1;
}
http://www.rkmt.cn/news/9273.html

相关文章:

  • UE5 Cook数据结构
  • WPF治具软件模板分享 - Dragonet
  • 微信扫码二维码,关注绑定公众号提醒,利用微信公众号的模板消息进行消息通知的推送
  • 各位同学,大家好!我想请大家回忆一段我们在刘集中学的故事,和我单独联系。我想把这些故事写出来保存。欢迎与我分享!谢谢!
  • vite7-vue3-os网页os管理|vue3+vite7+arco.design网页pc版webos系统
  • python读取csv文件后,打印内容再return返回内容,返回值为空
  • 实用指南:手机群控平台的工作效率
  • 在ubuntu系统的c语言程序
  • asfp导入framework搭建环境
  • 赛前训练2 连通性问题
  • Window 连接 Ubuntu远程桌面
  • 提高杂题
  • 【比赛记录】2025CSP-S模拟赛51
  • some
  • CF494C Helping People
  • 深入解析:Extract Chart Data Directly to Excel
  • 02020403 EF Core基础03-Fluent API、Data Annotation、两种配置的选择
  • 深入解析:Python(1)|| 超基础语法(格式,输入输出,变量,字符串,运算符)
  • mysql数据库自增ID为int类型超过范围
  • LeetCode 几道 Promises 和 Time 的题目 - 教程
  • java相关问题:面向对象入门2与类的识别
  • EXCEL自动调整列宽的快捷键
  • 破解塔吊顶升高危难题!让事故率降 50%、审批快 70%
  • CF2086D Even String
  • logicflow___文档3
  • langraph-up-react
  • Java学生信息管理系统代码分析
  • ArcGIS Pro中 Nodata和nan 黑边的处理 - 指南
  • 浅谈字典树
  • go-mapus为局域网地图协作而生