110. 平衡二叉树【简单】

110. 平衡二叉树【简单】


题目描述:

给定一个二叉树,判断它是否是高度平衡的二叉树。
本题中,一棵高度平衡二叉树定义为:

一个二叉树每个节点的左右两个子树的高度差的绝对值不超过 1 。

示例 1:
在这里插入图片描述

输入:root = [3,9,20,null,null,15,7]
输出:true

示例 2:
在这里插入图片描述

输入:root = [1,2,2,3,3,null,null,4,4]
输出:false

示例 3:

输入:root = []
输出:true

提示

  • 树中的节点数在范围 [0, 5000] 内
  • -10^4 <= Node.val <= 10^4

JAVA代码:

(一)自顶向下的递归方法

思路:
首先创建【计算二叉树的深度】的方法。

详见LCR 175.计算二叉树的深度

len<=1:只要保证根节点左右节点深度的差值不大于1,就能说该根节点是平衡的。
isBalanced(root.left) && isBalanced(root.right):又因为平衡二叉树是每个节点的左右两个子树的高度差的绝对值不超过1。所以同时要保证左节点和右节点也平衡。

/*** 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) {if(root==null) return true;int len = Math.abs(getLength(root.left)-getLength(root.right));return len<=1 && isBalanced(root.left) && isBalanced(root.right);}public int getLength(TreeNode node){if(node==null) return 0;return 1+Math.max(getLength(node.left),getLength(node.right));}
}

在这里插入图片描述

(二)自底向上的递归方法

看不懂,官网自行查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724183.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用MiniZinc进行约束建模——以着色问题为例

文章目录 1. 什么是 MiniZinc ?2. 安装方法(Windows)3. 求解着色问题3.1 问题描述3.2 建立 MiniZinc 模型3.3 运行求解1. 什么是 MiniZinc ? 约束满足性问题(Constraint Satisfaction Problem,CSP)判断在有限变量与有限约束条件下,是否存在满足所有约束条件的变量赋值…

chmod+x 命令

将linux上旧的four_diag.sh文件删除&#xff0c;从本地重新上传后&#xff0c;不能执行&#xff0c;需要执行命令&#xff1a; chmod x four_diag.sh 才行 chmod x 的意思就是给执行权限 命令格式&#xff1a; chmod x 文件名 LINUX下不同的文件类型有不同的颜色&#xff1…

IDEA修改git提交者的信息

git提交后&#xff0c;idea会记录下提交人的信息&#xff0c;如果不修改提交人信息的话&#xff0c;会有一个默认值。避免每次提交都要填提交人信息&#xff0c;直接设置成自己想要的默认值&#xff0c;该怎么操作&#xff1f; 提交的时候在这里修改提交人信息 避免每次都去设置…

和鲸科技受邀参与湖南省气象信息中心开展人工智能研究型业务支撑平台学术交流

为推进湖南省机器学习统一平台建设&#xff0c;2 月 29 日&#xff0c;湖南省气象信息中心开展学术讲座活动&#xff0c;活动由中心副主任冯冼主持&#xff0c;中心业务骨干、湖南省气象台、湖南分院等技术人员参加。 本次讲座邀请上海和今信息科技有限公司&#xff08;简称“…

【企业动态】欢迎法国客户来访东胜物联,深入探讨智能化合作

本周&#xff0c;来自法国的客户莅临我司工厂进行实地参观考察。客户是一家历史悠久的设备供应商&#xff0c;其产品涵盖冷链、餐饮、农业等多个行业应用领域&#xff0c;正致力于从传统设备向智能设备转型&#xff0c;希望将设备接入物联网。在此次访问中&#xff0c;他们参观…

fastapi_mail发送邮件,邮件附件文件重命名

当fastapi_mail发送邮件的时候&#xff0c;想对附件的名称进行重命名 以下是fastapi_mail下的schemas.py的源码 import os from enum import Enum from mimetypes import MimeTypes from typing import Dict, List, Optional, Unionfrom pydantic import BaseModel, EmailStr,…

HarmonyOS | UI开发 (一) | 基础组件(Text/Span,TextInput/TextArea,Button,Image)

文章目录 前言一、基础组件1.1.Text的概述1.2.Text的创建方式- string字符串创建- 引用Resource资源 1.3.Text自定义文本样式- 通过textAlign属性设置文本对齐样式- 通过textOverflow属性控制文本超长处理- 通过lineHeight属性设置文本行高- 通过copyOption属性设置文本是否可复…

python大数据分析游戏行业中的 Apache Kafka:用例 + 架构!

python大数据分析游戏行业中的 Apache Kafka&#xff1a;用例 架构&#xff01; 这篇博文探讨了使用 Apache Kafka 的事件流如何提供可扩展、可靠且高效的基础设施&#xff0c;让游戏玩家开心并让游戏公司取得成功。讨论了游戏行业中的各种用例和架构&#xff0c;包括在线和移…

C++初阶篇----类与对象中卷

目录 引言1. 构造函数1.1概念1.2 特性 2. 析构函数2.1 概念2.2 特性 3. 拷贝构造函数3.1 概念3.2特征 4. 赋值运算符重载4.1 运算符重载4.2 赋值运算符重载4.3 前置和后置重载 5.日期类的实现6.const成员7.取地址及const取地址操作符重载 引言 当一个类既没有成员变量又没有成…

汉诺塔问题(C语言)

一&#xff1a;问题 汉诺塔&#xff08;Tower of Hanoi&#xff09;&#xff0c;又称河内塔&#xff0c;是一个源于印度古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子&#xff0c;在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从…

wordpress相册gallery的几种不同调用方式

常规方式调用 if ( $gallery get_post_gallery( get_the_ID() ) ) :echo $gallery; endif; 调用循环中的所有图片并可以自字义样式 if ( $gallery get_post_gallery( get_the_ID(), false ) ) :foreach ( $gallery[src] AS $src ) {echo <img src" . $src . "…

QVector和QString互相转换

我的画图项目需要读写自定义虚线样式 {...comboBox_penStyle new QComboBox;QStringList SL_penStyle;SL_penStyle << "______" << "----------" << ".........." << "-.-.-.-.-." << "-..-..-..…

【OJ】日期差值与日期累加

个人主页 &#xff1a; zxctscl 如有转载请先通知 文章目录 1. KY111 日期差值1.1 题目分析1.2 代码 2. KY258 日期累加2.1 题目分析2.2 代码 1. KY111 日期差值 1.1 题目分析 日期之间比较可能会出现给的两个年月日都不相同&#xff0c;这个就不好作差&#xff0c;每个月给的…

LeetCode每日一题 二叉树的最大深度(二叉树)

题目描述 给定一个二叉树 root &#xff0c;返回其最大深度。二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3 示例 2&#xff1a; 输入&#xff1a;root [1,nul…

VUE:key属性的作用

在 Vue.js 中&#xff0c;key属性的主要作用是帮助 Vue 在进行 DOM 更新时&#xff0c;能够更准确地识别哪些节点可以复用。 当key值发生变化时&#xff0c;Vue 会执行以下步骤&#xff1a; 1.查找旧节点&#xff1a;Vue 会查找虚拟 DOM 中具有旧key值的节点。 2.匹配新节点…

Kubernetes编排系统:实现云原生应用的自动化部署与管理

随着云计算和容器技术的日益普及,如何高效、自动化地部署和管理应用成为了企业面临的重要挑战。Kubernetes,作为一个开源的容器编排系统,凭借其强大的功能、灵活性和可扩展性,逐渐成为了业界的宠儿。本文将首先简要介绍Kubernetes编排系统的基本概念,然后详细阐述其核心组…

前端知识点、技巧、webpack、性能优化(持续更新~)

1、 请求太多 页面加载慢 &#xff08;webpack性能优化&#xff09; 可以把 图片转换成 base64 放在src里面 减少服务器请求 但是图片会稍微大一点点 以上的方法不需要一个一个自己转化 可以在webpack 进行 性能优化 &#xff08;官网有详细描述&#xff09;

【详识C语言】自定义类型之一:结构体

本文重点 结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段&#xff08;位段的填充&可移植性&#xff09; 结构体 结构体的声明 结构的基础知识 结构是一些值的集合&#xff0c;这些值称为成员变量。结构的每个…

nohup 命令

1. nohup 是 no hang up 的缩写&#xff0c;就是不挂断的意思 如果你正在运行一个进程&#xff0c;而且你觉得在退出帐户时该进程还不会结束&#xff0c;那么可以使用nohup命令。 该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。 2. nohup和&的区别 nohup …

在 SpringBoot3 中使用 Mybatis-Plus 报错

在 SpringBoot3 中使用 Mybatis-Plus 报错 Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required Caused by: java.lang.IllegalArgumentException: Property sqlSessionFactory or sqlSessionTemplate are requiredat org.springframework.util.Assert.no…