【力扣】104. 二叉树的最大深度、111. 二叉树的最小深度

104. 二叉树的最大深度

题目描述

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

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

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

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

示例 2:

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

提示:

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

解题方法

  • C 深度优先搜索——递归
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
int my_max(int a, int b) {if (a > b)return a;elsereturn b;
}int maxDepth(struct TreeNode* root) {if (NULL == root) {return 0;}int left = maxDepth(root->left);int right = maxDepth(root->right);return my_max(left, right) + 1;
}

复杂度分析
时间复杂度:O(n),其中 n 为二叉树节点的个数。
空间复杂度:O(h),其中 h表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。


111. 二叉树的最小深度

题目描述

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明:叶子节点是指没有子节点的节点。

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

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

示例 2:

输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

提示:

  • 树中节点数的范围在 [0, 105] 内
  • -1000 <= Node.val <= 1000

解题方法

  • C 深度搜索——递归
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
int my_min(int a, int b) {if (a > b)return b;elsereturn a;
}int minDepth(struct TreeNode* root) {if (NULL == root) {return 0;}if (NULL == root->left && NULL == root->right) {return 1;}int min_depth = INT_MAX;if (NULL != root->left) {min_depth = my_min(minDepth(root->left), min_depth);}if (NULL != root->right) {min_depth = my_min(minDepth(root->right), min_depth);}return min_depth + 1;
}

复杂度分析
时间复杂度:O(N),其中 N 是树的节点数。对每个节点访问一次。
空间复杂度:O(H),其中 H 是树的高度。空间复杂度主要取决于递归时栈空间的开销,最坏情况下,树呈现链状,空间复杂度为 O(N)。平均情况下树的高度与节点数的对数正相关,空间复杂度为 O(log⁡N)。

参考@力扣官方题解

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

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

相关文章

ENSP防火墙配置策略路由及ip-link探测

拓扑 配置目标 1.A区域走ISP1&#xff0c;B区域走ISP2 2. isp线路故障时及时切换到另一条线路 配置接口及安全区域 配置安全策略 配置nat 配置默认路由 配置ip-link 配置策略路由 cl-1 cl-2 验证配置成功 策略路由 A走ISP1 B走ISP2 验证线路故障 isp1 in g0/0/0 shoutdow…

Qt——示波器/图表 QCustomPlot

一、介绍 QCustomPlot是一个用于绘图和数据可视化的Qt C小部件。它没有进一步的依赖关系&#xff0c;提供友好的文档帮助。这个绘图库专注于制作好看的&#xff0c;出版质量的2D绘图&#xff0c;图形和图表&#xff0c;以及为实时可视化应用程序提供高性能。QCustomPlot可以导出…

HWOD:走方格的方案数

一、自己的解题思路 1、(0,m)和(n,0) (0,m)表示处在棋盘的左边线&#xff0c;此刻能回到原点的路线只有一个&#xff0c;就是一路向上 (n,0)表示处在棋盘的上边线&#xff0c;此刻能回到原点的路线只有一个&#xff0c;就是一路向左 2、(1,1) (1,1)表示只有一个方格&#…

leetcode645-Set Mismatch

题目 集合 s 包含从 1 到 n 的整数。不幸的是&#xff0c;因为数据错误&#xff0c;导致集合里面某一个数字复制了成了集合里面的另外一个数字的值&#xff0c;导致集合 丢失了一个数字 并且 有一个数字重复 。 给定一个数组 nums 代表了集合 S 发生错误后的结果。 请你找出重…

02 Git 之IDEA 集成使用 GitHub(Git同时管理本地仓库和远程仓库)

2 .IDEA 集成使用 GitHub&#xff08;Git同时管理本地仓库和远程仓库&#xff09; 首先在 IDEA 的设置中绑定 GitHub 的账号 先创建一个 test1.txt 文件&#xff0c;内容为 aaa. 最上一栏 VCS&#xff0c; SHARE ON GitHub&#xff0c;然后选择要发送到远程仓库的文件即可。…

Vue实现防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。

1、演示 2、水印的目的 版权保护&#xff1a;水印可以在图片、文档或视频中嵌入作者、品牌或版权所有者的信息&#xff0c;以防止未经授权的复制、传播或使用。当其他人使用带有水印的内容时&#xff0c;可以追溯到原始作者或版权所有者&#xff0c;从而加强版权保护。 身份识…

基于单片机的天然气报警系统设计

摘要:为了有效减少我国家庭火灾事故的发生,提高人民家庭的安全水平,给人们带来更为舒适放心的生活环境,设想如果可以研发结构简单、经济实用的家庭烟雾报警器实现天然气报警系统的智能化,那就可以大幅度地减少家庭火灾事故发生的概率。本文根据单片机原理与传感器理论,提…

跟TED演讲学英文:A new way to build AI, openly by Percy Liang

A new way to build AI, openly Link: https://www.ted.com/talks/percy_liang_a_new_way_to_build_ai_openly? Speaker: Percy Liang Date: October 2023 文章目录 A new way to build AI, openlyIntroductionVocabularyTranscriptSummary后记 Introduction Today’s AI …

i/o设备与主机信息传送的控制方式:

i/o设备与主机信息传送的控制方式&#xff1a;程序查询方式&#xff1a; 是由CPU通过程序不断查询i/o设备是否以做好准备&#xff0c;从而控制i/o设备与主机交换信息&#xff0c;要求i/o设备内设置一个能反映i/o设备是否已准备就绪的状态标记。CPU在反复查询中&#xff0c;犹如…

vitepress/vite vue3 怎么实现vue模版字符串实时编译

如果是vue模版字符串的话&#xff0c;先解析成模版对象 另一篇文章里有vue模版字符串解析成vue模版对象-CSDN博客 //vue3写法&#xff08;vue2可以用new Vue.extend(vue模版对象)来实现&#xff09;import { createApp, defineComponent } from vue;// 定义一个简单的Vue组件c…

Unity之Unity面试题(六)

内容将会持续更新&#xff0c;有错误的地方欢迎指正&#xff0c;谢谢! Unity之Unity面试题&#xff08;六&#xff09; TechX 坚持将创新的科技带给世界&#xff01; 拥有更好的学习体验 —— 不断努力&#xff0c;不断进步&#xff0c;不断探索 TechX —— 心探索、心进取…

互联网摸鱼日报(2024-04-09)

互联网摸鱼日报(2024-04-09) 36氪新闻 Hulu登陆Disney&#xff0c;迪士尼的流媒体战略完成整合 大火的“新中式”&#xff0c;给消费行业带来了什么&#xff1f; 特斯拉“今天的坑”&#xff0c;三年前最风光时就埋下了 美国的2024&#xff0c;不是软着陆而是不着陆&#x…

登陆qq,经常收到qq游戏中心的推送信息,关闭推送信息

手动关闭推送信息的步骤&#xff1a; 1.点开左侧游戏中心 2、在打开界面&#xff0c;点击左下角自己的头像 3、打开设置中心&#xff0c;关闭所有的推送 4、完成关闭&#xff0c;不会推送了

头歌-机器学习 第13次实验 特征工程——共享单车之租赁需求预估

第1关&#xff1a;数据探索与可视化 任务描述 本关任务&#xff1a;编写python代码&#xff0c;完成一天中不同时间段的平均租赁数量的可视化功能。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 读取数据数据探索与可视化 读取数据 数据保存在./step1/…

vmware esxi6.0安装配置操作

系统安装及配置 在服务器上安装ESXI 6.0 提示是否继续安装 如果不想安装,按ESC后再按F11即可,稍后电脑会重启. 继续安装,则按回车键 按F11同意声明继续 选择将EXSI 安装到哪个硬盘上,我这里使用的是虚拟机,所以只有这一个选项 选择默认键盘布局,默认的美国键盘即可 设置root…

华为ensp中PPP(点对点协议)中的CHAP认证 原理和配置命令

作者主页&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; 创作时间&#xff1a;2024年4月11日6点00分 PPP协议&#xff08;Point-to-Point Protocol&#xff09;是点到点协议&#xff0c;是一种常用的串行链路层协议&#xff0c;用于在两个节点之间建立点…

Facial Micro-Expression Recognition Based on DeepLocal-Holistic Network 阅读笔记

中科院王老师团队的工作&#xff0c;用于做微表情识别。 摘要&#xff1a; Toimprove the efficiency of micro-expression feature extraction,inspired by the psychological studyof attentional resource allocation for micro-expression cognition,we propose a deep loc…

前端自动化测试的方法和工具

前端自动化测试是通过自动化工具来模拟用户操作&#xff0c;验证前端应用的功能、性能和用户体验是否符合预期的过程。以下是几种常见的前端自动化测试方法&#xff1a; 单元测试&#xff08;Unit Testing&#xff09;&#xff1a; 单元测试是针对代码中最小的可测试单元进行的…

递归的基本思想

递归解决问题的思路是将大问题拆解成更小的同类问题&#xff0c;并通过解决这些更小的问题来解决原始问题。这种方法适用于问题可以被分解成相似的子问题的情况。 递归的基本要素&#xff1a; 基础情况&#xff08;Base Case&#xff09;&#xff1a;递归函数中需要有一个或多…

Docker - MySQL

博文目录 文章目录 说明前置命令 说明 Docker Hub MySQL 数据卷印射容器内的路径mysql/var/lib/mysqlmysql.conf/etc/mysql/conf.d 容器内的路径说明/var/lib/mysql数据目录/etc/mysql/conf.d/my.cnf配置文件 部分环境变量是否必要说明MYSQL_ROOT_PASSWORD必需设置超级用户 …