104.二叉树的最大深度

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

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

示例 1:

在这里插入图片描述

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

示例 2:

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

解题思路

DFS,以示例1为例子
在这里插入图片描述
1.初始化调用:函数首先被调用为 maxDepth(root),其中 root 是树的根节点,其值为 3。
2.进入递归:

  • 对于根节点(3),它有两个子节点(9 和 20),因此会递归调用左子树的 maxDepth(root->left) 和右子树的 maxDepth(root->right)。

  • 左子树递归: 进入左子树(9),此节点没有子节点,所以返回 0 + 1 = 1。

  • 右子树递归: 进入右子树(20),它有两个子节点(15 和 7)。

  • 对于节点 20,继续递归: 左子树(15)没有子节点,返回 0 + 1 = 1。 右子树(7)也没有子节点,返回 0 + 1 = 1。

  • 在节点 20处,左右子树的最大深度为 1,所以返回 max(1, 1) + 1 = 2。

  • 回到根节点(3)处,其左右子树的最大深度分别为 1(来自9的路径)和 2(来自20的路径),因此返回 max(1, 2) + 1 = 3。

结果:整个函数执行完毕后,返回的是整棵树的最大深度,即 3

/**
 * 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;
        }
        return max(maxDepth(root->left), maxDepth(root->right)) + 1;
    }
};

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

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

相关文章

10、matlab中字符、数字、矩阵、字符串和元胞合并为字符串并将字符串以不同格式写入读出excel

1、前言 在 MATLAB 中,可以使用不同的数据类型(字符、数字、矩阵、字符串和元胞)合并为字符串,然后将字符串以不同格式写入 Excel 文件。 以下是一个示例代码,展示如何将不同数据类型合并为字符串,并以不…

以智领航 鸿翼助力企业构筑智能化知识管理体系

全面智能化时代,鸿翼倾力打造“知识管理人工智能”的深度融合之作——鸿翼KM知识管理,植根非结构化数据治理全生命周期,打造出智能高效的知识管理体系,助推企业数智化转型落地。 数字化时代的知识管理 文档是现代企业运行与管理的…

springboot大学生请假管理系统-计算机毕业设计源码17453

摘 要 从20年代开始,计算机疯狂的出现在人们的生活以及工作当中,成为人们生活、工作的好帮手,计算机深入到每家每户当中,网络办公,网络教学更是替换了传统手工记录管理的方式,使用计算机办公可以不必局限于…

Vue3轻松创建交互式仪表盘

本文由ScriptEcho平台提供技术支持 项目地址:传送门 基于 Plotly.js 的 Vue 仪表盘组件 应用场景介绍 仪表盘是一种交互式可视化工具,用于监控和分析关键指标。它广泛应用于各种行业,例如金融、医疗保健和制造业。 代码基本功能介绍 本…

linux快捷键

快捷键 ctrl c 强制停止ctrl d 退出登录history 查看历史命令!命令前缀,自动匹配上一个命令ctrl r 搜索历史命令ctrl a | e 光标移动到命令开始或结束ctrl 左箭头 | 右箭头 左右跳单词ctrl | 或者 clear 清屏 !命令前缀 例如这里之前…

德旺训练营称重问题

这是考小学的分治策略,小学的分治策略几乎都是分三组。本着这个策略,我们做看看。 第一次称重: 分三组,16,16,17,拿两个16称,得到A情况,一样重,那么假铜钱在那组17个里面。B情况不…

3d打开模型的时候怎么没有灯光?---模大狮模型网

在3D建模与渲染过程中,灯光是至关重要的元素之一,直接影响到最终场景的视觉效果和真实感。然而,有时打开3D模型时可能会发现缺乏适当的灯光设置,这会导致场景显得暗淡或平淡无奇。本文将探讨为何在打开3D模型时可能没有灯光的原因…

AI时代的产品经理的成长指南_pdca循环理论制定ai学习成长计划

一、人人不都是产品经理 大多数人听到“产品经理”这个词,总会联想到“人人都是产品经理”这句话。但实际上产品经理这个岗位并没有那么简单。 用一句话概括产品经理的职责就是“帮助团队交付正确产品给用户的人”。也就是说,产品经理要能凝聚团队的力…

在线JSON可视化工具--改进

先前发布了JSON格式化可视化在线工具,提供图形化界面显示结构关系功能,并提供JSON快速格式化、JSON压缩、快捷复制、下载导出、对存在语法错误的地方能明确显示,而且还支持全屏,极大扩大视野区域。 在线JSON格式化可视化工具 但…

C语言版,链表头插法与尾插法

最近又开始看数据结构与算法,看到这个头插法还真的是头插法,头都搞疼了,略微理解了一些。尾插法还好一些,比较好理解,但是如果深入理解还是可以理解。 头插法核心代码: head->next NULL; s->next h…

windows重装系统

一、下载Ventoy工具,制作启动盘 官网地址:https://www.ventoy.net/cn/download.html 电脑插入用来制作系统盘的U盘,建议大小在8G以上。 双击打开刚解压出来的Ventoy2Disk.exe文件。打开界面如图: 确认U盘,如图&am…

java常用类(3)

目录 一. 正则表达式 二. Math类 三. Random类 四. Date类 五. Calendar类 六. SimpDateFormate类 七. BigInteger类 八. BigDecimal类 一. 正则表达式 正则表达式(Regular Expression)就是用一些特殊的符号去匹配一个字符串是否符合规则,利用String类中的matches()方…

3D Gaussian Splatting代码中的train和render两个文件代码解读

现在来聊一聊训练和渲染是如何进行的 training train.py line 31 def training(dataset, opt, pipe, testing_iterations, saving_iterations, checkpoint_iterations, checkpoint, debug_from):# 初始化第一次迭代的索引为0first_iter 0# 准备输出和日志记录器tb_writer p…

滚珠花键促进汽车产业整体升级与发展!

滚珠花键能够实现高效的传动和连接,确保物体在运动过程中的精确位置和稳定性,被广泛应用于机械制造、航空航天、工业自动化、工业汽车、工业机器人、高速铁路等领域。为各个行业的发展提供了重要支持,尤其是在工业汽车领域中,为我…

数据库管理系统中的磁盘、文件、页和记录管理

1. 引言 数据库管理系统(DBMS)是一个复杂的软件系统,用于管理和操作数据库中的数据。DBMS需要有效地在磁盘和内存之间组织和管理数据,以确保高效的数据存储和检索。本文将详细介绍DBMS中关于磁盘、文件、页和记录的管理&#xff…

关于电子画册的制作方法

在这个数字化飞速发展的时代,电子画册以其便捷的分享方式和环保的理念,逐渐成为艺术家和设计师的新宠。如果你也想将自己的作品集或品牌故事以电子画册的形式呈现,那么就跟随我们的脚步,一起探索电子画册的制作方法吧!…

鸿蒙开发设备管理:【@ohos.runningLock (Runninglock锁)】

Runninglock锁 该模块主要提供Runninglock锁相关操作的接口,包括创建、查询、持锁、释放锁等操作。 说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 导入模块 import runningLock f…

龙迅 国产原装 低成本高性能转换器 Type-C with 2lane@8.1Gbps/lane 4K60

2.一般说明 LT8711UXE1是一款高性能的Type-C/DP1.2至HDMI2.0转换器,设计用于将USBType-C源或DP1.2源连接至HDMI2.0收发器。该LT8711UXE1集成了一个DP1.2兼容接收器,和一个HDMI2.0兼容发射器。此外,还包括用于CC通信的两个CC控制器&#xff0c…

VS生成类图

VS生成类图 1、启动visualstudioinstaller,点击“单个组件“,“代码工具”,勾选”类设计器“。 2、右键要查看的项目,选“查看类图”

css---before和after伪元素

1.什么是伪元素 伪元素不是真正的页面元素,html没有对应的元素,但是其所有用法和表现行为与真正的页面元素一样,可以对其使用如页面元素一样的CSS样式,表面上看上去貌似是页面的某些元素来展现,实际上CSS样式展现的行…