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

java练习(28)

ps:练习来自力扣

给定一个二叉树,判断它是否是平衡二叉树

// 定义二叉树节点类
class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val = val; }TreeNode(int val, TreeNode left, TreeNode right) {this.val = val;this.left = left;this.right = right;}
}class Solution {public boolean isBalanced(TreeNode root) {return getHeight(root) != -1;}private int getHeight(TreeNode node) {// 如果当前节点为空,高度为 0if (node == null) {return 0;}// 递归计算左子树的高度int leftHeight = getHeight(node.left);// 如果左子树已经不平衡,直接返回 -1if (leftHeight == -1) {return -1;}// 递归计算右子树的高度int rightHeight = getHeight(node.right);// 如果右子树已经不平衡,直接返回 -1if (rightHeight == -1) {return -1;}// 判断当前节点的左右子树高度差是否超过 1if (Math.abs(leftHeight - rightHeight) > 1) {return -1;}// 如果当前节点平衡,返回其高度(左右子树最大高度加 1)return Math.max(leftHeight, rightHeight) + 1;}
}

  


http://www.mrgr.cn/news/91304.html

相关文章:

  • 【leetcode】双指针:有效三角形的个数 and 和为s的两个数
  • gsoap实现webservice服务
  • [LeetCode力扣hot100]-二叉树相关手撕题
  • ScoreFlow:通过基于分数的偏好优化掌握 LLM 智体工作流程
  • DeepSeek等大模型功能集成到WPS中的详细步骤
  • 英语---基础词汇库
  • 未加cont修饰的左值引用不能绑定到右值
  • 什么是3D视觉无序抓取?
  • 深入探索 C++17 中的 std::hypot:从二维到三维的欧几里得距离计算
  • Day4 25/2/17 MON
  • deepseek本地部署方案(超简单)
  • GPT-4o悄然升级:能力与个性双突破,AI竞技场再掀波澜
  • ping6 命令介绍和 IPv6 常见的网段划分
  • 想要追踪一个在传送带上运动的东西,该怎么选择工业相机呢,需要考虑哪些因素
  • Linux相关概念和易错知识点(28)(线程控制、Linux下线程的底层)
  • 【在时光的棋局中修行——论股市投资的诗意哲学】
  • Java 运行时常量池笔记(详细版
  • 【深度学习】环境和分布偏移
  • 【vmware虚拟机安装教程】
  • 用deepseek学大模型03-数学基础 概率论 最大似然估计(MLE)最大后验估计(MAP)