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

二叉树 最大深度(递归)

给定一个二叉树 root ,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

示例 1:

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

示例 2:

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

提示:

  • 树中节点的数量在 [0, 104] 区间内。
  • -100 <= Node.val <= 100

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:int maxDepth(TreeNode* root) {if (root == nullptr) {return 0;}int leftDepth = maxDepth(root->left);int rightDepth = maxDepth(root->right);return max(leftDepth, rightDepth) + 1;}
};

如果当前节点为空(即root == nullptr),返回深度0。

对于每个非空节点,分别计算其左子树和右子树的深度。调用maxDepth(root->left)maxDepth(root->right)来获取左、右子树的深度。

返回左右子树深度的最大值再加1,因为当前的根节点也算入深度中。

相关文章:

二叉树 最大深度(递归)

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

C++详细笔记(五)

1.类和对象 1.1运算符重载&#xff08;补&#xff09; 1.运算符重载中&#xff0c;参数顺序和操作数顺序是一致的。 2.一般成员函数重载为成员函数&#xff0c;输入流和输出流重载为全局函数。 3.由1和2只正常的成员函数默认第一个参数为this指针而重载中参数顺序和操作数顺…...

简易CPU设计入门:译码模块(一)

项目代码下载 还是请大家首先准备好本项目所用的源代码。如果已经下载了&#xff0c;那就不用重复下载了。如果还没有下载&#xff0c;那么&#xff0c;请大家点击下方链接&#xff0c;来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后&#xff…...

力扣题目解析--三数之和

题目 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请你返回所有和为 0 且不重复的三元组。 注意&#xff1a;答案中不可以包含重复的三元组。 示…...

qt QTabWidget详解

1、概述 QTabWidget是Qt框架中的一个控件&#xff0c;它提供了一个标签页式的界面&#xff0c;允许用户在不同的页面&#xff08;或称为标签&#xff09;之间切换。每个页面都可以包含不同的内容&#xff0c;如文本、图像、按钮或其他小部件。QTabWidget非常适合用于创建具有多…...

linux shell脚本学习(1):shell脚本基本概念与操作

1.什么是shell脚本 linux系统中&#xff0c;shell脚本或称之为bash shell程序&#xff0c;通常是由vim编辑&#xff0c;由linux命令、bash shell指令、逻辑控制语句、注释信息组成的可执行文件 *linux中常以.sh后缀作为shell脚本的后缀。linux系统中文件乃至脚本的后缀并没有…...

Savitzky-Golay(SG)滤波器

Savitzky-Golay&#xff08;SG&#xff09;滤波器是一种在时域内基于局域多项式最小二乘法拟合的滤波方法&#xff0c;它最初由Savitzky A和Golay M于1964年提出&#xff0c;并广泛应用于数据流平滑除噪。 基本介绍 一、基本原理 SG滤波器通过在滑动窗口内拟合多项式来平滑数…...

Webserver(2.7)共享内存

目录 共享内存共享内存实现进程通信 共享内存 共享内存比内存映射效率更高&#xff0c;因为内存映射关联了一个文件 共享内存实现进程通信 write.c #include <stdio.h> #include <sys/ipc.h> #include <sys/shm.h> #include <string.h>int main(){…...

【网安案例学习】凭证填充Credential Stuffing

### 凭证填充的深入讨论 凭证填充&#xff08;Credential Stuffing&#xff09;是一种网络攻击技术&#xff0c;攻击者利用从数据泄露中获取的大量用户名和密码组合&#xff0c;尝试在其他网站和服务上进行自动化登录。这种攻击依赖于用户在多个网站上重复使用相同密码的习惯。…...

网站建设公司怎么选?网站制作公司怎么选才不会出错?

寻找适合靠谱的网站设计公司&#xff0c;不要盲目选广告推最多的几家&#xff0c;毕竟要实现自身品牌营销&#xff0c;还是需要多方面考量。以下几个方面可以作为选择的参考&#xff1a; 1. 专业能力如何&#xff1f; 一个公司的专业能力&#xff0c;决定了最后网站设计的成果…...

19. 架构重要需求

文章目录 第19章 架构重要需求19.1 从需求文档中收集架构重要需求&#xff08;ASRs&#xff09;不要抱太大希望从需求文档中找出架构重要需求 19.2 通过访谈利益相关者收集架构重要需求19.3 通过理解业务目标收集架构重要需求19.4 在效用树中捕获架构重要需求19.5 变化总会发生…...

iOS 再谈KVC、 KVO

故事背景&#xff1a;大厂面试&#xff0c;又问道了基本的kvc kvo的原理和使用&#xff0c;由于转了前端&#xff0c;除了个setter和getter&#xff0c;我全忘记了&#xff0c;其实还是没有理解记忆&#xff0c;下面再看一下kvc 和kvo ,总结一个让人通过理解而无法忘记的方法&a…...

java、excel表格合并、指定单元格查找、合并文件夹

#创作灵感# 公司需求 记录工作内容 后端&#xff1a;JAVA、Solon、easyExcel、FastJson2 前端&#xff1a;vue2.js、js、HTML 模式1&#xff1a;合并文件夹 * 现有很多文件夹 想合并全部全部的文件夹的文件到一个文件夹内 * 每个部门发布的表格 合并全部的表格为方便操作 模…...

最基础版编译运行Java(纯小白)

流程图&#xff1a; ⚠ 需要先安装JDK (Java Development Kit) 1. 写文件 首先写好自己的“文件”&#xff0c;可以用Sublime Text等文本编辑器写&#xff0c;还可以直接新建文本文档写一个.txt文件。 以编写一个HelloWorld程序为例&#xff1a; public class HelloWorld{p…...

六西格玛项目助力,手术机器人零部件国产化稳中求胜——张驰咨询

项目背景 XR-1000型腔镜手术机器人是某头部手术机器人企业推出的高端手术设备&#xff0c;专注于微创手术领域&#xff0c;具有高度的精确性和稳定性。而XR-1000型机器人使用的部分核心零部件长期依赖进口&#xff0c;特别是高精度电机、关节执行机构和视觉系统等&#xff0c;…...

Python爬虫系列(一)

目录 一、urllib 1.1 初体验 1.2 使用urllib下载网页、图片、视频等 1.3 反爬介绍 1.4 请求对象定制 1.5 get请求的quote方法 1.6 多个参数转成ascii编码 1.7 post请求 1.8 综合案例演示 一、urllib 1.1 初体验 # urllib是python默认带的&#xff0c;无需额外下载 i…...

# vim那些事...... vim删除文件全部内容

vim那些事… vim删除文件全部内容 1、在 Vim 中删除整个文件的内容&#xff0c;可以使用以下命令&#xff1a; 1&#xff09;打开 Vim&#xff0c;并编辑你想要清空的文件。 2&#xff09;按 Esc 确保你不在插入模式&#xff0c;而在命令模式。 3&#xff09;输入 gg 跳转到…...

Selinux及防火墙

一&#xff0c;selinux简介&#xff1a; SELinux&#xff08;Security-Enhanced Linux&#xff09;是一个Linux内核安全模块&#xff0c;旨在提供强制访问控制&#xff08;MAC&#xff09;机制&#xff0c;以增强系统的安全性。由美国国家安全局&#xff08;NSA&#xff09;开…...

业绩代码查询实战——php

一、一级代码显示职员 foreach($data_职员信息 as $key > $value){//$where_查询分类$where_查询通用;//$dat分类one $业绩提成->where($where_查询分类)->order("CreateDate desc")->select();if($value[haschildname]0 && $value[key] !"…...

内网穿透技术选型PPTP(点对点隧道协议)和 FRP(Fast Reverse Proxy)

PPTP&#xff08;点对点隧道协议&#xff09;和 FRP&#xff08;Fast Reverse Proxy&#xff09;是两种实现内网穿透的技术&#xff0c;但它们的工作原理、使用场景和特点有很大区别。以下是它们的详细比较&#xff1a; PPTP&#xff08;Point-to-Point Tunneling Protocol&am…...

Simulink模型加密二选一:是选‘受保护模型’还是自己写S-Function?一份给嵌入式代码生成者的选择指南

Simulink模型加密实战&#xff1a;受保护模型与S-Function的深度技术选型 在嵌入式系统开发中&#xff0c;Simulink模型往往承载着核心算法和知识产权。当需要与团队协作或交付给客户时&#xff0c;如何在保证模型可用性的同时防止核心逻辑被窥探或篡改&#xff1f;这成为每个嵌…...

UnrealPakViewer工具解析:UE4资源管理的可视化解决方案

UnrealPakViewer工具解析&#xff1a;UE4资源管理的可视化解决方案 【免费下载链接】UnrealPakViewer 查看 UE4 Pak 文件的图形化工具&#xff0c;支持 UE4 pak/ucas 文件 项目地址: https://gitcode.com/gh_mirrors/un/UnrealPakViewer UnrealPakViewer是一款专为UE4开…...

实战指南:Whisper 的 `prompt` 与 `initial_prompt` 参数在语音转文字中的高效应用

1. Whisper 语音转文字的核心参数解析 第一次用 Whisper 做语音转文字时&#xff0c;我发现同样的音频文件&#xff0c;同事转出来的结果总比我的准确率高。后来才发现&#xff0c;原来他偷偷用了一个叫 prompt 的秘密武器。这就像考试时的"小抄"&#xff0c;给模型…...

Unity坐标系实战解析:从localPosition到Position的层级关系与应用场景

1. 理解Unity中的坐标系基础 在Unity开发中&#xff0c;坐标系系统是构建3D世界的基石。很多新手开发者容易混淆localPosition和Position的概念&#xff0c;导致物体位置控制出现各种"灵异现象"。我们先从一个生活场景来理解&#xff1a;想象你站在客厅里&#xff08…...

告别手动维护!用DataX-Web搞定MySQL到ClickHouse的增量同步(含时间戳配置)

高效构建MySQL到ClickHouse的增量同步管道&#xff1a;DataX-Web实战指南 在数据驱动的商业环境中&#xff0c;企业每天都会产生海量的业务数据。这些数据通常存储在OLTP系统如MySQL中&#xff0c;但为了进行分析和报表生成&#xff0c;我们需要将这些数据同步到OLTP系统如Clic…...

5分钟部署Qwen3-VL-8B:MacBook也能跑的视觉语言模型,零基础上手

5分钟部署Qwen3-VL-8B&#xff1a;MacBook也能跑的视觉语言模型&#xff0c;零基础上手 1. 为什么选择Qwen3-VL-8B-Instruct-GGUF 1.1 轻量级多模态模型的突破 Qwen3-VL-8B-Instruct-GGUF是阿里通义实验室最新推出的视觉语言模型&#xff0c;它最大的特点就是小身材大能量。…...

3大核心能力解析:open_nsfw如何为企业构建智能内容安全防线

3大核心能力解析&#xff1a;open_nsfw如何为企业构建智能内容安全防线 【免费下载链接】open_nsfw yahoo/open_nsfw: 是一个由Yahoo开发的开放源代码的非成人内容过滤工具。适合用于需要过滤成人内容的网站或应用。特点是可以识别和过滤掉不适宜的内容&#xff0c;保护用户免受…...

不会写C代码也能做飞控?手把手教你用Matlab/Simulink和FMT搭建无人机算法模型

零代码飞控开发实战&#xff1a;用Matlab/SimulinkFMT实现无人机算法快速迭代 当无人机行业从极客玩具转向工业级应用时&#xff0c;传统飞控开发模式正面临严峻挑战——某高校研究团队曾花费三个月手工编写PID控制代码&#xff0c;却在首次试飞时因姿态解算模块的数值溢出导致…...

企业级邮件系统自建指南:从技术选型到生产部署

企业级邮件系统自建指南&#xff1a;从技术选型到生产部署 【免费下载链接】james-project James Project是一个用于电子邮件服务器的开源软件。适用于需要为其邮件基础设施提供强大和可靠的邮件传输代理的企业和组织。具有可扩展性、灵活性和易于使用的特点。 项目地址: htt…...

别再裸奔你的实时数据流了!用Python+Starlette给SSE接口加个Header认证门卫

实时数据流安全加固&#xff1a;PythonStarlette实现SSE接口的Bearer Token认证 想象一下&#xff0c;你精心构建的实时数据看板突然被不明身份的用户随意访问&#xff0c;敏感的业务指标像超市促销传单一样被任意获取——这不是危言耸听&#xff0c;而是许多开发者在使用SSE技…...