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

力扣110:判断二叉树是否为平衡二叉树

利用二叉树遍历的思想编写一个判断二叉树,是否为平衡二叉树

示例 :

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

思想:

代码:

int getDepth(struct TreeNode* node) {//如果结点不存在,返回0if(node==NULL)return 0;//求出右子树深度int rightDepth = getDepth(node->right);//求出左子树深度int leftDepth = getDepth(node->left);//返回左右子树中的较大值+1return rightDepth > leftDepth ? rightDepth + 1 : leftDepth + 1;
}bool isBalanced(struct TreeNode* root) {//递归结束条件为:传入结点为NULL,返回Trueif(root==NULL)return true;//求出左右子树的深度int leftDepth = getDepth(root->left);int rightDepth = getDepth(root->right);//若左右子树绝对值差距大于1,返回Falseif(abs(leftDepth - rightDepth) > 1 )return false;//检查左右子树是否为平衡二叉树return isBalanced(root->right) && isBalanced(root->left);
}

时间复杂度O(n);空间复杂度O(1) 

相关文章:

力扣110:判断二叉树是否为平衡二叉树

利用二叉树遍历的思想编写一个判断二叉树,是否为平衡二叉树 示例 : 输入:root [3,9,20,null,null,15,7] 输出:true思想: 代码: int getDepth(struct TreeNode* node) {//如果结点不存在,返回…...

Chromium 中JavaScript Fetch API接口c++代码实现(一)

Fetch API主要暴露了三个接口一个方法。 三个接口 Request(资源请求)Response(请求的响应)Headers(Request/Response头部信息)一个方法 fetch()(获取资源调用的方法更多介绍参考 Fetch API - Web API | MDN (mozilla.org) 一、 来看一段前端代码 <!DOCTYPE html> <h…...

ARM(5)内存管理单元MMU

一、虚拟地址和物理地址 首先&#xff0c;计算机系统的内存被组成一个由M个连续的字节大小组成的数组。每字节都会有一个唯一的物理地址。CPU访问内存最简单的方式就是使用物理地址。如下图&#xff1a; 图 1 物理地址,物理寻址 而现在都是采用的都是虚拟寻址的方法。CPU生成一…...

文件上传漏洞原理

原理&#xff1a;\n应用中存在上传功能&#xff0c;但是上传的文件没有经过严格的合法性检验或者检验函数存在缺陷&#xff0c;导致可以上传木马文件到服务器&#xff0c;并且能够执行其中的恶意代码。\n\n危害&#xff1a;\n服务器的网页篡改&#xff0c;网站被挂马&#xff0…...

Web安全 - 安全防御工具和体系构建

文章目录 安全标准和框架1. 国内安全标准&#xff1a;等级保护制度&#xff08;等保&#xff09;2. 国际安全标准&#xff1a;ISO27000系列3. NIST安全框架&#xff1a;IDPRR方法4. COBIT与ITIL框架 防火墙防火墙的基本作用防火墙的三种主要类型防火墙的防护能力防火墙的盲区 W…...

服务器数据恢复—raid磁盘故障导致数据库文件损坏的数据恢复案例

服务器存储数据恢复环境&故障&#xff1a; 存储中有一组由3块SAS硬盘组建的raid。上层win server操作系统层面划分了3个分区&#xff0c;数据库存放在D分区&#xff0c;备份存放在E分区。 RAID中一块硬盘的指示灯亮红色&#xff0c;D分区无法识别&#xff1b;E分区可识别&a…...

requests 中data=xxx、json=xxx、params=xxx 分别什么时候用

如果是要做爬虫模拟一个页面提交&#xff0c;看原页面是post还是get&#xff0c;以及Content-Type是什么。 GET 请求 使用 paramsxxx&#xff0c;查询参数会被编码到 URL 中。POST 请求&#xff0c;Content-Type为 application/x-www-form-urlencoded的&#xff0c;使用 dataxx…...

毕设 大数据抖音短视频数据分析与可视化(源码)

文章目录 0 前言1 课题背景2 数据清洗3 数据可视化地区-用户观看时间分界线每周观看观看路径发布地点视频时长整体点赞、完播 4 进阶分析相关性分析留存率 5 深度分析客户价值判断 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕…...

【SQL】深入理解SQL:从基础概念到常用命令

目录 1. SQL基础概念1.1 数据库与表1.2 行与列1.3 数据库与表结构示意图 2. 常用SQL命令3. DML 命令3.1 SELECT语句3.2 INSERT语句3.3 UPDATE语句3.4 DELETE语句 4. DDL 命令3.4.1 CREATE 命令3.4.2 ALTER 命令3.4.3 DROP 命令 5. DCL 命令3.6.1 GRANT 命令3.6.2 REVOKE 命令 学…...

一文看懂计算机中的大小端(Endianess)

文章目录 前言一、什么是大小端二、如何判断大小端三、大小端的转换3.1 使用标准库函数3.2 手动实现大小端转换 前言 本文主要探讨计算机中大小端的相关概念以及如何进行大小端的判断和转换等。 一、什么是大小端 大小端&#xff08;Endianess&#xff09;是指计算机系统在存…...

如何给父母安排体检?

总结&#xff1a;给父母安排体检&#xff0c;常规项目针对项目。 其中针对项目是根据父母自身的病史来设计。 如何快速了解这些体检项目&#xff1f;我自己认为最快的方式&#xff0c;自己去医院体检两次&#xff0c;这样对体检的项目有一定的了解&#xff0c;比如这个项目怎么…...

C++之模版进阶篇

目录 前言 1.非类型模版参数 2.模版的特化 2.1概念 2.2函数模版特化 2.3 类模板特化 2.3.1 全特化和偏特化 2.3.2类模版特化应用实例 3.模版分离编译 3.1 什么是分离编译 3.2 模板的分离编译 3.3 解决方法 4. 模板总结 结束语 前言 在模版初阶我们学习了函数模版和类…...

Vue3 中的 `replace` 属性:优化路由导航的利器

嘿&#xff0c;小伙伴们&#xff01;今天给大家带来一个Vue3中非常实用的小技巧——replace属性的使用方法。在Vue Router中&#xff0c;replace属性可以帮助我们在导航时不留下历史记录&#xff0c;这对于一些特定的应用场景非常有用。话不多说&#xff0c;让我们直接进入实战…...

vite学习教程06、vite.config.js配置

前言 博主介绍&#xff1a;✌目前全网粉丝3W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技术内容&#xff1a;Java后端、大数据、算法、分布式微服务、中间件、前端、运维等。 博主所有博客文件…...

【大数据】Flink CDC 实时同步mysql数据

目录 一、前言 二、Flink CDC介绍 2.1 什么是Flink CDC 2.2 Flink CDC 特点 2.3 Flink CDC 核心工作原理 2.4 Flink CDC 使用场景 三、常用的数据同步方案对比 3.1 数据同步概述 3.1.1 数据同步来源 3.2 常用的数据同步方案汇总 3.3 为什么推荐Flink CDC 3.4 Flink …...

JavaEE: 深入解析HTTP协议的奥秘(1)

文章目录 HTTPHTTP 是什么HTTP 协议抓包fiddle 用法 HTTP 请求响应基本格式 HTTP HTTP 是什么 HTTP 全称为"超文本传输协议". HTTP不仅仅能传输文本,还能传输图片,传输音频文件,传输其他的各种数据. 因此它广泛应用在日常开发的各种场景中. HTTP 往往是基于传输层的…...

OpenStack Yoga版安装笔记(十六)Openstack网络理解

0、前言 本文将以Openstack在Linux Bridge环境下的应用为例进行阐述。 1、Openstack抽象网络 OpenStack的抽象网络主要包括网络&#xff08;network&#xff09;、子网&#xff08;subnet&#xff09;、端口&#xff08;port&#xff09;&#xff0c;路由器&#xff08;rout…...

PEFT库和transformers库在NLP大模型中的使用和常用方法详解

PEFT&#xff08;Parameter-Efficient Fine-Tuning&#xff09;库是一个用于有效微调大型预训练语言模型的工具&#xff0c;尤其是在计算资源有限的情况下。它提供了一系列技术&#xff0c;旨在提高微调过程的效率和灵活性。以下是PEFT库的详细解读以及一些常用方法的总结&…...

静止坐标系和旋转坐标系变换的线性化,锁相环线性化通用推导

将笛卡尔坐标系的电压 [ U x , U y ] [U_x, U_y] [Ux​,Uy​] 通过旋转变换(由锁相环角度 θ P L L \theta_{PLL} θPLL​ 控制)转换为 dq 坐标系下的电压 [ U d , U q ] [U_d, U_q] [Ud​,Uq​]。这个公式是非线性的,因为它涉及到正弦和余弦函数。 图片中的推导过程主要…...

AI学习指南深度学习篇-学习率衰减的变体及扩展应用

AI学习指南深度学习篇 - 学习率衰减的变体及扩展应用 在深度学习的训练过程中&#xff0c;学习率的选择对模型的收敛速度和最终效果有重要影响。为了提升模型性能&#xff0c;学习率衰减&#xff08;Learning Rate Decay&#xff09;作为一种优化技术被广泛应用。本文将探讨多…...

C++定时器避坑指南:线程安全、资源泄漏与时间轮参数怎么调?一次讲清楚

C定时器避坑指南&#xff1a;线程安全、资源泄漏与时间轮参数调优实战 在分布式系统和高并发场景中&#xff0c;定时器如同系统的心跳机制&#xff0c;其稳定性直接决定服务可靠性。去年某电商平台大促期间&#xff0c;由于定时任务堆积导致的雪崩效应&#xff0c;造成近千万损…...

前端工程化实战:基于 Kelivo 模板的配置即代码与自动化工作流

1. 项目概述与核心价值最近在整理个人开发环境时&#xff0c;发现一个挺有意思的项目&#xff0c;叫Chevey339/kelivo。乍一看这个仓库名&#xff0c;可能有点摸不着头脑&#xff0c;但点进去之后&#xff0c;你会发现它是一个围绕特定开发工具或框架进行深度定制、优化和功能增…...

轻量级工作流引擎pro-workflow:Go语言实现与实战解析

1. 项目概述&#xff1a;一个为专业开发者量身打造的工作流引擎如果你是一名开发者&#xff0c;尤其是经常需要处理复杂业务逻辑、数据流转或自动化任务的后端或全栈工程师&#xff0c;那么你一定对“工作流”这个概念不陌生。从简单的审批流到复杂的微服务编排&#xff0c;工作…...

ElevenLabs匈牙利语音API响应延迟飙升300%?内网穿透+CDN缓存+匈牙利语音素预加载三阶优化方案

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs匈牙利文语音API响应延迟飙升300%的现象复现与根因定位 近期多位开发者反馈&#xff0c;ElevenLabs API 在处理匈牙利语&#xff08;hu-HU&#xff09;文本转语音请求时&#xff0c;平均端到…...

AI助手API开发资源全指南:从入门到实战的宝藏清单

1. 项目概述&#xff1a;一个为AI助手API开发者量身打造的“藏宝图”如果你正在或打算基于OpenAI的Assistant API、Anthropic的Claude API&#xff0c;或是其他主流AI平台的助手接口来构建应用&#xff0c;那么你大概率会遇到一个经典困境&#xff1a;官方文档虽然详尽&#xf…...

Navis:开源项目标准化开发环境与工具链配置框架实践

1. 项目概述&#xff1a;一个为开发者打造的“导航星图”如果你和我一样&#xff0c;常年混迹在开源项目的海洋里&#xff0c;那么你一定对这种感觉不陌生&#xff1a;面对一个全新的、功能强大的开源工具&#xff0c;兴奋地克隆了仓库&#xff0c;然后……就卡在了第一步。REA…...

Cursor编辑器性能优化:精准重置缓存与进程的开发者效率工具

1. 项目概述&#xff1a;一个被低估的开发者效率工具如果你是一名开发者&#xff0c;尤其是深度使用 Cursor 这类 AI 驱动的代码编辑器&#xff0c;那么你一定遇到过这样的场景&#xff1a;编辑器突然变得卡顿、代码补全失灵、AI 建议变得驴唇不对马嘴&#xff0c;或者插件行为…...

无代码物联网实战:基于ESP32与WipperSnapper的泳池水温监测方案

1. 项目概述&#xff1a;告别繁琐编程&#xff0c;用无代码方案守护泳池水温又到了打理泳池的季节&#xff0c;除了常规的清洁和化学平衡&#xff0c;水温其实是个挺关键的指标。水温不仅影响游泳的舒适度&#xff0c;也关系到泳池加热设备的能耗和泳池化学品的反应速率。以前想…...

基于Claude API构建可编程AI智能体:从对话到自动化生产单元

1. 项目概述&#xff1a;从Claude中“招聘”一个AI伙伴最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“hire-from-claude”。初看这个标题&#xff0c;你可能会有点摸不着头脑&#xff1a;Claude不是Anthropic公司开发的那个AI助手吗&#xff1f;怎么还能从它那里“招聘…...

【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit

目录 一、一个自然的想法 二、类型转换运算符的基本语法 写法 使用 三、隐式转换的风险 问题1&#xff1a;意外的不希望发生的转换 问题2&#xff1a;多个转换路径的歧义 问题3&#xff1a;与构造函数隐式转换叠加导致混乱 四、explicit&#xff1a;禁止隐式转换 语法…...