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

leetcode110. 平衡二叉树

问题描述:

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

本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过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 。

思路:深度差小于2,返回true。

上代码,拿去即可运行:

package onlyqi.daydayupgo06.leetcode;public class TreeNode {private Integer value;private TreeNode left;private TreeNode right;public TreeNode() {}public TreeNode(Integer value) {this.value=value;}public TreeNode(Integer value, TreeNode left, TreeNode right) {this.value = value;this.left = left;this.right = right;}public Integer getValue() {return value;}public void setValue(Integer value) {this.value = value;}public TreeNode getLeft() {return left;}public void setLeft(TreeNode left) {this.left = left;}public TreeNode getRight() {return right;}public void setRight(TreeNode right) {this.right = right;}
}
public class Tree {public static void main(String[] args) {TreeNode treeNode1 = new TreeNode(1);TreeNode treeNode2 = new TreeNode(2);TreeNode treeNode3 = new TreeNode(3);TreeNode treeNode4 = new TreeNode(4);TreeNode treeNode5 = new TreeNode(5);TreeNode treeNode6 = new TreeNode(6);TreeNode treeNode7 = new TreeNode(7);treeNode2.setLeft(treeNode4);treeNode2.setRight(treeNode5);treeNode1.setLeft(treeNode2);treeNode1.setRight(treeNode3);treeNode3.setLeft(treeNode6);System.out.println(isBalanced(treeNode1));}public static boolean isBalanced(TreeNode root) {return depth(root) != -1;}private static int depth(TreeNode root) {if (root == null) return 0;int left = depth(root.getLeft());if(left == -1) return -1;int right = depth(root.getRight());if(right == -1) return -1;return Math.abs(left - right) < 2 ? Math.max(left, right) + 1 : -1;}
}

运行结果:

我要刷300道算法题,第143道 。 尽快刷到200,每天搞一道  。 

http://www.dtcms.com/a/365230.html

相关文章:

  • 深入解析Java Spliterator(Stream延迟、并行计算核心)
  • 哪些AI生成PPT的软件或网站支持多平台使用?都支持哪些平台?
  • AI生成PPT工具排名:2025年高效办公新选择
  • 关于MySQL数据库连接超时问题及解决办法
  • AR智慧运维系统介绍
  • vue项目打包后dist部署到Nginx
  • 性能测试-jmeter9-直连数据库
  • 深度学习篇---模型组成部分
  • 财务文档处理优化:基于本地运行的PDF合并解决方案
  • 【51单片机】【protues仿真】基于51单片机压力测量仪系统
  • wpf触发器
  • Dify 从入门到精通(第 73/100 篇):Dify 的高级 RAG 优化(高级篇)
  • 调制端Phase Shift Discriminator(PSD)算法原理
  • 数据结构从青铜到王者第二十话---Map和Set(3)
  • windows安装PostgreSQL 和TimescaleDB
  • 数据结构:顺序栈与链栈的原理、实现及应用
  • 集成 Node.js 模块:文件系统与网络操作
  • 深入理解 Java 集合框架:底层原理与实战应用
  • 数据结构——二叉树+堆
  • .gitignore 文件为什么无效。
  • 开学季,老师如何用阅兵仪式激励学生?
  • PNP具身解读——RSS2025论文加州伯克利RLDG: 通过强化学习实现机器人通才策略提炼。
  • 在DDPM(扩散模型)中,反向过程为什么不能和前向一样一步解决,另外实际公式推导时反向过程每一步都能得到一个预测值,为什么还要一步一步的推导?
  • GEM5学习(4): 运行全系统模式的ARM系统
  • Docker 运行 PolarDB-for-PostgreSQL 的命令,并已包含数据持久化配置
  • 梅赛德斯-AMG PETRONAS F1车队携手SAP Cloud ERP:以数字化驱动精确与高效
  • HTML全屏功能实现汇总
  • 缠论笔线段画线,文华财经期货指标公式,好用的缠论指标源码
  • 从全栈开发到微服务架构:一位Java工程师的实战经验分享
  • 突破闭集限制:3D-MOOD 实现开集单目 3D 检测新 SOTA