当前位置: 首页 > 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) {
        // 如果当前节点为空,高度为 0
        if (node == null) {
            return 0;
        }
        // 递归计算左子树的高度
        int leftHeight = getHeight(node.left);
        // 如果左子树已经不平衡,直接返回 -1
        if (leftHeight == -1) {
            return -1;
        }
        // 递归计算右子树的高度
        int rightHeight = getHeight(node.right);
        // 如果右子树已经不平衡,直接返回 -1
        if (rightHeight == -1) {
            return -1;
        }
        // 判断当前节点的左右子树高度差是否超过 1
        if (Math.abs(leftHeight - rightHeight) > 1) {
            return -1;
        }
        // 如果当前节点平衡,返回其高度(左右子树最大高度加 1)
        return Math.max(leftHeight, rightHeight) + 1;
    }
}

  

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

相关文章:

  • Java 大视界 -- 开源社区对 Java 大数据发展的推动与贡献(91)
  • AWS 前端自动化部署流程指南
  • Leetcode 526 Beautiful number
  • 用自己的数据训练yolov11目标检测
  • HTTP 响应头信息
  • Selenium+Pytest自动化测试框架实战
  • ad原理图元件透明问题
  • WWW 2025 | 中南、微软提出端到端双重动态推荐模型,释放LLM在序列推荐中的潜力...
  • 开源模型应用落地-LangGraph101-探索 LangGraph 短期记忆
  • 基于YOLO11深度学习的胃肠道息肉智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
  • Java 基于SpringBoot+Vue 的旅游网站信息化管理系统设计与实现
  • JavaScript的诞生与进化
  • jetson orin nano super AI模型部署之路(一)deepseek r1模型部署
  • 【ProtoBuf】文件编写及序列化
  • C语言实现的常见排序算法
  • AI与大数据:双剑合璧的智能革命
  • 【学习资源】时间序列数据分析方法(2)-mWDN和AutoEncoder
  • 通过BingAPI爬取Bing半个月内壁纸
  • 基于Unity引擎的网络通信架构深度解析——以NetworkConnectionController为例
  • pdf-extract-kit paddle paddleocr pdf2markdown.py(效果不佳)
  • Spring Boot项目开发常见问题及解决方案(上)
  • Java数据结构——Map和Set
  • 【C++项目】Rpc通信框架设计
  • Dest1ny漏洞库: 美团代付微信小程序系统任意文件读取漏洞
  • Linux相关概念和易错知识点(28)(线程控制、Linux下线程的底层)
  • unity学习46:反向动力学IK
  • 《Operating System Concepts》阅读笔记:p17-p25
  • 碰一碰发视频@技术原理与实现开发步骤
  • PaddlePaddle的OCR模型转onnx-转rknn模型_笔记4
  • 字节跳动AI编辑器Trae基本配置教程