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

2025年-G11-Lc85-110.平衡二叉树-java版

1.题目描述
在这里插入图片描述
在这里插入图片描述

2.思路
思路1:
在这里插入图片描述
在这里插入图片描述
思路2:
二叉树中求高度的常见模板要记住,树节点类型,传入节点node
在这里插入图片描述
平衡二叉树和不平衡二叉树举例:
在这里插入图片描述
思路3: 高度定义是从根节点到叶子节点的高度,但是计算的时候从叶子节点开始算(0层),所以要+1
在这里插入图片描述
思路4:从根节点开始递归高度的时候,用root=-1来代表不平衡的子树。root=0只能说明是空树,。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
height(TreeNode node) 方法的参数 node 是一个 TreeNode 类型的引用,指向某个具体的 TreeNode 对象。在方法内部,您可以通过该引用访问和修改这个对象的属性。
在 Java 中,当方法的参数是对象类型时,传递的是对象的引用。这里的“对象”指的是内存中实际存储的数据实体,例如定义的 TreeNode 实例。而“引用”是指向该对象的内存地址的变量。将对象作为参数传递给方法时,方法接收到的是该对象引用的副本,即指向同一对象的内存地址。因此,在方法内部对该对象的修改会影响到原始对象。

3.java代码

/**
 * Definition for a binary tree node.
 * public 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 height(root)!=-1;
        //用总高度-1代表不是不平衡树;也就是高度差是0,1.....  都可以返回true

    }
    private int height(TreeNode node)
    {//方法的参数node是对对象的引用
       if(node==null)
       {
        return 0;//如果节点为空代表空子树,高度为0,也可以是不平衡树
       }
          


        int leftheight=height(node.left);
        int rightheight=height(node.right);
        //1.如果左子树不平衡或者右子树不平衡,直接返回-1;还有一种情况是违反定义,就是左右子树高度差大于1
        if(leftheight==-1||rightheight==-1||Math.abs(leftheight-rightheight)>1)
        {
            return -1;
        }
        // 2.否则,返回当前节点的高度
        return Math.max(leftheight,rightheight)+1;
        
    }
}

相关文章:

  • NLP-RNN-LSTM浅析
  • XTOM-TRANSFORM自动化三维测量系统用于汽车零部件质量控制
  • three.js之特殊材质效果
  • linux+KMS+AD域自动激活
  • docker安装ros2 并在windows中显示docker内ubuntu系统窗口并且vscode编程
  • 获取每月最后一个工作日:考虑法定节假日与调休
  • IDEA中查询Maven项目的依赖树
  • 鸿蒙初学者学习手册(HarmonyOSNext_API14)_自定义动画API(@ohos.animator (动画) )
  • RabbitMQ的脑裂(网络分区)问题
  • 推荐一款AI大模型托管平台-OpenWebUI
  • Jenkins 部署在 Mac 并在局域网内通过 ip 访问
  • 【Spring AI】简单使用示例说明
  • SAP 代码扫描工具
  • selenium爬取苏宁易购平台某产品的评论
  • 架构学习第七周--Prometheus
  • Vue 3 中如何注册全局自定义组件:一个 SVG 图标的例子
  • Debezium连接器对比
  • Unity shader glsl着色器特效之 模拟海面海浪效果
  • Python 函数(传递实参)
  • 【工具】飞书个人知识库搭建(附详细步骤)
  • 移动互联网的应用举例/手机流畅优化软件
  • 新乐网站建设/公司网站怎么建立
  • 多语言网站怎么实现的/seo优化快速排名
  • 河北 政府网站建设管理/给公司做网站要多少钱
  • 经验分享的网站开发/腾讯效果推广
  • 自适应网站一般做几个尺寸/优秀网站设计案例