闯关leetcode——110. Balanced Binary Tree

大纲

  • 题目
    • 地址
    • 内容
  • 解题
    • 代码地址

题目

地址

https://leetcode.com/problems/balanced-binary-tree/description/

内容

Given a binary tree, determine if it is height-balanced.

A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.

Example 1:
在这里插入图片描述

Input: root = [3,9,20,null,null,15,7]
Output: true

Example 2:

Input: root = [1,2,2,3,3,null,null,4,4]
Output: false

Example 3:

Input: root = []
Output: true

Constraints:

  • The number of nodes in the tree is in the range [0, 5000].
  • -104 <= Node.val <= 104

解题

这题就是要检验一棵树是否是平衡二叉树。

平衡二叉搜索树(英语:Balanced Binary Search Tree)是一种结构平衡的二叉搜索树,它是一种每个节点的左右两子树高度差都不超过1的二叉树。它能在O(logn})内完成插入、查找和删除操作,最早被发明的平衡二叉搜索树为AVL树。

这题的解法就是实现:检验所有节点的左右子树高度差。
树的高度可以通过下面算法获得,即左右子树中最高高度+1为本节点高度。

    int height(TreeNode* root) {
        if (root == nullptr) return 0;
        return 1 + max(height(root->left), height(root->right));
    }

然后递归检测每个节点是否符合左右两子树高度差都不超过1的特点。

class Solution {
public:
    bool isBalanced(TreeNode* root) {
        if (root == nullptr) return true;
        return abs(height(root->left) - height(root->right)) <= 1 && isBalanced(root->left) && isBalanced(root->right);
    }
private:
    int height(TreeNode* root) {
        if (root == nullptr) return 0;
        return 1 + max(height(root->left), height(root->right));
    }
};

在这里插入图片描述

代码地址

https://github.com/f304646673/leetcode/tree/main/110-Balanced-Binary-Tree

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

系统内核分析工具

工具下载地址&#xff1a;系统内核分析工具-32位64位资源-CSDN文库

PyQt5高级界面控件一

如何查看widget类及其子类有哪些属性和函数&#xff1a; dir() from PyQt5.QtWidgets import QWidget dir(QWidget)help() from PyQt5.QtWidgets import QWidget help(QWidget)表格与树 表格与树解决的问题是如何在一个控件种有规律地呈现更多的数据。PyQt提供了两种控件类用…

初识git · 有关模型

目录 前言&#xff1a; 有关开发模型 前言&#xff1a; 其实文章更新到这里的时候&#xff0c;我们已经学习了可以满足我们日常生活中的基本需求的指令了&#xff0c;但是为什么要更新本篇文章呢&#xff1f;是因为实际生活中我们对于开发工作&#xff0c;运维工作&#xff…

RISC-V笔记——显式同步

1. 前言 RISC-V的RVWMO模型主要包含了preserved program order、load value axiom、atomicity axiom、progress axiom和I/O Ordering。今天主要记录下preserved program order(保留程序顺序)中的Explicit Synchronization(显示同步)。 2. 显示同步 显示同步指的是&#xff1a…

网络空间指纹:新型网络犯罪研判的关键路径

前言 新型网络犯罪是指利用计算机技术和互联网平台进行犯罪活动的一类犯罪行为。它涵盖了一系列使用网络和数字技术进行非法活动的行为&#xff0c;如网络钓鱼、网络诈骗、恶意软件攻击、黑客入侵、数据泄露、网络色情和社交网络犯罪等。 随着当前打击治理新型网络犯罪博弈态…

idea中,git提交时忽略某些本地修改.将文件从git暂存区移除

我们有时候在本地调试代码时&#xff0c;某些配置文件需要修改成本地环境中。当改完后&#xff0c;需要提交代码时&#xff0c;这些文件又不能推到git上。如下图&#xff1a; 当出现这种情况&#xff0c;我们每次都需要手动去将不需要提交的文件的对号去掉。文件多了后&#x…

dlib库-人脸检测

文章目录 一、介绍二、与OpenCv对比三、dlib库安装1.直接安装2.dlib库whl文件进行安装 四、代码实现五、总结 一、介绍 dlib库是一个适用于C和Python的第三方库。包含机器学习、计算机视觉和图像处理的工具包&#xff0c;被广泛的应用于机器人、嵌入式设备、移动电话和大型高性…

STM32L031F6P6基于CubeMX的串口通信调试笔记

用CubeMX创建项目 本实例用的PA14、PA13两个引脚&#xff0c;LPUART1。 对串口参数进行设置&#xff1a; 开启串口中断&#xff1a; 时钟源设置成内部高频时钟&#xff1a; 对项目进行设置&#xff1a; 生成代码&#xff1a; 在串口初始化函数中加入 __HAL_UART_ENA…

wps图标没有坐标轴标题怎么办?wps表格不能用enter下怎么办?

目录 wps图标没有坐标轴标题怎么办 一、在WPS PPT中添加坐标轴标题 二、在WPS Excel中添加坐标轴标题 wps表格不能用enter下怎么办 一、检查并修改设置 二、检查单元格保护状态 三、使用快捷键实现换行 wps图标没有坐标轴标题怎么办 一、在WPS PPT中添加坐标轴标题 插入…

基于Java微信小程序的高校教务管理系统的详细设计和实现(源码+lw+部署文档+讲解等)

详细视频演示 请联系我获取更详细的演示视频 项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不…

Django学习-后台管理相关操作

admin配置步骤&#xff1a; 注册自定义的模型类&#xff1a; 代码&#xff1a; from django.contrib import admin from .models import Book, Author# Register your models here. admin.site.register(Book) admin.site.register(Author)模型管理器类&#xff08;修改&#…

工程技术-中英文普刊合集

文章目录 一、征稿简介二、重要信息三、服务简述四、投稿须知五、联系咨询 一、征稿简介 二、重要信息 期刊官网&#xff1a;https://ais.cn/u/3eEJNv 三、服务简述 四、投稿须知 1.在线投稿&#xff1a;由艾思科蓝支持在线投稿&#xff0c;请将文章全文投稿至艾思科蓝投稿系…

案例分析:Modbus设备如何通过MQTT网关连接阿里云IoT

物联网技术的发展&#xff0c;越来越多的传统工业控制系统需要与现代云平台集成&#xff0c;以便实现远程监控、数据分析等功能。Modbus协议作为工业控制领域的一种常见通讯协议&#xff0c;其设备通常需要转换为MQTT协议才能更好地与诸如阿里云IoT、华为云IoT、ThingsBoard等云…

pdf文件太大如何变小?

pdf文件太大如何变小&#xff1f;在处理PDF文件的过程中&#xff0c;文件大小往往成为了一个不可忽视的关键因素。庞大的文件不仅占据了宝贵的存储空间&#xff0c;还在文件传输过程中造成了时间上的延误&#xff0c;这无疑给工作效率带来了不小的挑战。特别是在电子邮件附件的…

突破干扰,无人机自动驾驶技术详解

突破干扰的无人机自动驾驶技术&#xff0c;是一个结合了多学科领域的复杂系统&#xff0c;旨在确保无人机在复杂电磁环境、人为干扰等条件下仍能自主、安全地完成飞行任务。以下是对该技术的详细解析&#xff1a; 一、技术概述 无人机自动驾驶技术通过集成传感器技术、人工智…

Axure基本元件库——基本元件、表单和菜单表格

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 课程主题&#xff1a;认识和数据Axure基本元件库 主要内容&#xff1a;基本元件、表单元件和菜单表格 应用场景&#xff1a;原型绘制基本元件、页面组成和交互基础 正文…

网络爬虫中的几种数据存储方式(上篇)

本文的内容是介绍网络爬虫中的数据存储方式。大家都知道爬虫的最重要功能就是从网络中将数据提取出来。现在问题来了&#xff0c;那么提取出来的数据该何去何从&#xff0c;如果仅仅只是保存在内存当中&#xff0c;当程序结束后岂不是所有的内容都消失了&#xff1f;因此需要将…

大语言模型赋能病理AI,自动从报告文本中分类TNM分期|顶刊精析·24-10-17

小罗碎碎念 这篇文章介绍了一种名为BB-TEN&#xff08;Big Bird – TNM staging Extracted from Notes&#xff09;的方法&#xff0c;它能够自动从病理报告文本中分类TNM&#xff08;肿瘤大小、区域淋巴结受累和远处转移&#xff09;分期。 今天分享的这篇文章于2024-10-16发表…

elementUi el-table 表头高度异常问题

1、现象 在同一个页面通过状态切换不同table时&#xff0c;当从有合并标头行的table切换到无合并表头的table时&#xff0c;无合并表头的table的表头的高度异常了&#xff0c;如下图 切换后 2、解决 给每个el-table 加上一个唯一的key <el-table key"1"></…

大规模语言模型与生成模型:技术原理、架构与应用

大规模语言模型与生成模型&#xff1a;技术原理、架构与应用 个人主页&#xff1a;chian-ocean文章专栏 大规模语言模型与生成模型&#xff1a;技术原理、架构与应用1. 引言2. 大规模语言模型概述2.1 什么是大规模语言模型&#xff1f;2.2 常见的语言模型架构2.3 语言模型的技术…