[E二叉树] lc104. 二叉树的最大深度(dfs+自顶向下)

文章目录

    • 1. 题目来源
    • 2. 题目解析

1. 题目来源

链接:104. 二叉树的最大深度

题单:

    1. 链表、二叉树与一般树(前后指针/快慢指针/DFS/BFS/直径/LCA)
    • §2.2 自顶向下 DFS

2. 题目解析

思路:

  • 很基础的 dfs 题目哈,使用 bfs 也能做,体会一下两者的区别。
  • 自顶向下、自底向上 都可以处理这个题目。

  • 时间复杂度 O ( n ) O(n) O(n)
  • 空间复杂度 O ( n ) O(n) O(n)

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

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

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

相关文章

k8s单master多node环境搭建-k8s版本低于1.24,容器运行时为docker

k8s 1.20.6单master多node环境搭建 1.环境规划2.初始化服务器1)配置主机名2)设置IP为静态IP3)关闭selinux4)配置主机hosts文件5)配置三台主机之间免密登录6)关闭交换分区swap,提升性能7&#xf…

github源码指引:C++嵌入式WEB服务器

初级代码游戏的专栏介绍与文章目录-CSDN博客 我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。 这些代码大部分以Linux为目标但部分代码是纯C的,可以在任何平台上使用。 相关专题: C嵌入式…

基于Spring Boot的文字识别系统

前端使用htmlcssjs,后端使用Spring Boot,数据库使用mysql,识别算法有两个,一个是使用百度OCR接口,一个是自己写一个python,用flask包装。 其中百度OCR接口可以去免费申请,然后把appid、apikey、…

Netty 知识目录

Netty 知识结构Netty Bootstrap/ServerBootstrapNetty EventLoopGroup/EventLoopNetty ChannelNetty ChannelPipeline/ChannelHandlerNetty ByteBufNetty TCPNetty UDPNetty HTTPNetty WebsocketNetty SSL/TLS

【王树森】Transformer模型(1/2): 剥离RNN,保留Attention(个人向笔记)

Transformer简介 Transformer 是一个Seq2Seq模型Tramsformer 不是RNNTransfomer 只有attention和全连接层机器翻译在大型数据集上完爆最好的RNN Review Attention for RNN 这节课讲的attention相对比于前两节课多了一个 v i v_i vi​,之前是用权重直接乘 h h h&…

【GD32】从零开始学GD32单片机 | USB通用串行总线接口+HID键盘例程(GD32F470ZGT6)

1. 简介 USB,全称通用串行总线,相信大家都非常熟悉了,日常生活只要用到手机电脑都离不开这个接口,像鼠标键盘U盘都需要使用这个接口进行数据传输,下面简单介绍一下。 1.1 版本标准 USB的标准总体可以分为低速、全速和…

业务资源管理模式语言02

图1 模式间的依赖关系 第一节:最开始,关注应用中包括的资源。首先,必须标识资源(1),下一步,检查资源限定(2),同时量化资源(3) 模式1…

c#笔记5 详解事件的内置类型EventHandler、windows事件在winform中的运用

为什么要研究这一问题? 事件和委托可以说是息息相关。 前面先解释了什么是委托,怎么定义一个委托以及怎么使用匿名方法来内联地新建委托。 事实上事件这一机制在c#的程序开发中展很重要的地位,尤其是接触了winform软件开发的同学们应该都知…

Unity 动态光照贴图,加载后显示变暗或者变白问题 ReflectionProbe的使用

动态加载光照贴图代码,可参考这个帖子 Unity 预制动态绑定光照贴图遇到变白问题_unity urp 动态加载光照信息 变黑-CSDN博客 这次遇到的问题是,在编辑器下光照贴图能正常显示,打出apk后光照贴图加载后变黑的问题 以下4张图代表4种状态&…

duckDB源码GDB调试

duckDB源码GDB调试 一,首先编译源代码,使用debug模式 在根目录下 make debug cd ./build/debug/test二,gdb调试unittest gdb ./unittest三,打断点 b dictionary_compression.cpp:621四,执行unittest run test/sq…

opencascade 重叠曲线设置优先显示

‌OpenCASCADE重叠曲线显示设置‌ 当出现重叠曲线时,往往需要设置 优先显示的对象 关键点 SetDisplayPriority SetLayer

磁性齿轮箱市场报告:前三大厂商占有大约79.0%的市场份额

磁性齿轮箱是一种用于扭矩和速度转换的非接触式机构。它们无磨损、无摩擦、无疲劳。它们不需要润滑剂,并且可以针对其他机械特性(如刚度或阻尼)进行定制。 一、全球磁性齿轮箱行业现状与洞察 据 QYResearch 调研团队最新发布的“全球磁性齿轮…

在 Next.js 项目中使用 Clerk 实现 OAuth 登录与回调处理

1. 什么是 Clerk 和 OAuth 登录? Clerk 是一个身份验证管理工具,可以轻松集成到 Web 应用中,提供安全的用户登录、注册等功能。OAuth 是一种常见的授权协议,允许用户通过第三方服务(如 Google、Microsoft)…

10分钟了解OPPO中间件容器化实践

背景 OPPO是一家全球化的科技公司,随着公司的快速发展,业务方向越来越多,对中间件的依赖也越来越紧密,中间件的集群的数量成倍数增长,在中间件的部署,使用,以及运维出现各种问题。 1.中间件与业…

PCM转PCMA(pcm_alaw,G711.A率)转换表 PCM转PCMU(pcm_ulaw,G711.U率)转换表

PCM转PCMA(pcm_alaw,G711.A率)转换表 && PCM转PCMU(pcm_ulaw,G711.U率)转换表 文章目录 PCM转PCMA(pcm_alaw,G711.A率)转换表 && PCM转PCMU(…

桥接与NET

仔细看看下面两幅图 net模式,就是在你的Windows电脑(假设叫A电脑)的网络基础上,再生成一个子网络,ip的前两位默认就是192.168,然后第三位是随机,第四位是自己可以手动设置的。使用这种模式唯一的…

Centos 7 升级glibc2.33 记录

查看glibc升级所需的依赖编译环境: cd $HOME/glibc-$glibc_ver cat INSTALL | grep -E "newer|later" glibc升级参考链接: 主要参考链接:https://blog.csdn.net/optimistic001/article/details/136705055 次要参考链接&#x…

设计模式结构型模式之代理模式

结构型模式之代理模式 一、概念和使用场景1、概念2、核心思想3、java实现代理模式的方式4、使用场景 二、示例讲解1. 静态代理2. 动态代理 三、总结1、使用规则2、代理模式的优点包括:3、代理模式的缺点包括: 一、概念和使用场景 1、概念 代理模式是一…

如何设计数据库排序字段

最简单的办法就是按照id进行排序,越小的id排序越前,不过这完全没有灵活性可言,所以 int字段作为排序 采用一个额外的int字段作为排序成为更普遍的方式 考虑现实场景中,很多时候是需要进行中间插入排序的,这意味要求…

Numpy 数组及矩阵创建详解

基本数组创建方式 numpy中的主要数据类型为ndarray类型,也可以称之为数组,其在内存中是连续存储的.numpy底层大多C语言进行编写,所以运行效率较高,并且numpy库支持并行计算,如矩阵乘法以及其他线性代数操作 np.array() np.array()是numpy中最为基础和常用的创建数组的方式,其…