LeetCode 热题100-37 二叉树的最大深度

news2024/9/20 9:35:57

二叉树的最大深度

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

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

示例 1:

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

示例 2:

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

提示:

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

以前本科数据结构做过,感觉递归还是巧妙啊

class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        if root == None:return 0
        high = 0
        def dfs(root):
            if root == None:return 0
            if root.left ==None and root.right == None:return 1
            return max(dfs(root.left),dfs(root.right))+1
        return dfs(root)

然后看了看k神的题解,发现考虑是否有左右孩子节点的那个if没有必要...

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:
    def maxDepth(self, root: Optional[TreeNode]) -> int:
        if root == None:return 0
        if root.left==None and root.right==None:return 1
        return max(self.maxDepth(root.left),self.maxDepth(root.right))+1

而且也不需要再内置一个函数了...

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

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

相关文章

py 可视化图层

五张图&#xff1a;数据资源可联系1493175691qq.com import numpy as np import matplotlib.pyplot as plt from cartopy.mpl.ticker import LongitudeFormatter, LatitudeFormatter import cartopy.crs as ccrs import cartopy.feature as cfeature from cartopy.io.shaperead…

长亭雷池 WAF 部署及使用过程中遇到的问题

1、安装过程中遇到的问题 这里推荐使用官方的脚本命令&#xff0c;大概看了一下是先判断是否有容器&#xff0c;如果没有容器环境就安装&#xff0c;但是这一步就报错了。这里需要更换成阿里云或是国内其它的源来安装。 bash -c "$(curl -fsSLk https://waf-ce.chaitin.…

黑神话悟空丨资源合集,光追配置+修改器+各种奇奇怪怪的MOD

国产3A大作 黑神话悟空 推出了一些奇奇怪怪的mod(非官方)&#xff0c;作为一款备受瞩目的单机作品&#xff0c;黑神话悟空 不仅在剧情和画面上表现出色&#xff0c;同时也为玩家提供了丰富的Mod支持。 哈哈哈哈&#xff0c;总是就是奇奇怪怪&#xff0c;悟空被玩坏了&#xff…

unicode编码存在转义字符,导致乱码问题的解决方案

【前言】   本篇是为了记录一次解码出现乱码的解决方案&#xff0c;篇幅较短&#xff0c;废话不多说&#xff0c;请食用 【问题】后端针对一个字符串进行unicode编码后的&#xff0c;前端解码后出现乱码问题 unicode编码后的字符串&#xff0c;直接交给前端解码&#xff0c;…

【搜索引擎】ElasticSearch 8.x版本

1 ElasticSearch 8.x概述 1.1 Elasticsearch 8.X 来了 1.2 Elasticsearch 新特性 1.3 Elasticsearch 课程升级 2 ElasticSearch 安装 & 使用 2.1 Java 17 安装 2.1.1 下载软件 2.1.2 软件升级 2.2 Elasticsearch 安装 & 使用 2.2.1 下载软件 2.2.2 安装软件 2.2.3…

Visio po解版的详细介绍

一、Visio简介 Visio是一款流程图、组织结构图、地平图、工程图等各类专业图表的制作软件。自问世以来&#xff0c;凭借其友好的用户界面、丰富的图形库和强大的编辑功能&#xff0c;已成为行业内使用最广泛的图形设计软件之一。无论是初学者还是专业人士&#xff0c;都能在Vi…

首发!《物流运输行业电子签最佳实践案例集》重磅发布

近日&#xff0c;法大大重磅发布《物流运输行业电子签最佳实践案例集》&#xff0c;旨在分享在物流行业深耕近10年的经验&#xff0c;为物流企业提供基于电子签技术的数字化创新参考。 该案例集精选中原大易、G7易流、河北快运、万联易达、浙江新颜物流、内蒙古多蒙德、天津小…

使用C++封装顺序表

作业&#xff1a;使用C手动封装一个顺序表&#xff0c;包含成员数组一个&#xff0c;成员变量N个 #include <iostream>using namespace std;using datatypeint; #define MAX 20struct SeqList { private: //私有datatype *data;int size0; …

【Node】【7】函数

函数可以作为变量传递 function execute(someFunction, value) {someFunction(value); }execute(function(word){ console.log(word) }, "Hello");函数传递让http服务器工作,向createServer 传递了一个回调函数&#xff0c;该回调函数会在每次接收到 HTTP 请求时被调…

由浅入深学习 C 语言:Hello World【基础篇】

目录 1. 第一个 C 语言程序 2. 源文件 3. 编译程序 3.1 为什么要编译程序 3.2 C 程序编译过程 4. 预处理器指令 5. 头文件 5.1 什么是头文件 5.2 如何使用头文件 6. 注释 7. main 函数 7.1 函数格式 7.2 main 函数特性 8. 语句 9. return 语句 1. 第一个 C 语言程…

Qt QCustomPlot画色阶图

工作中用到QCustomPlot画曲线图和色阶图&#xff0c;并且在色阶图上添加文字&#xff0c;圆圈或者几条线段画一些图形&#xff0c;这里写个简单的例子把这几个功能记录一下&#xff0c;代码在这里&#xff1a; https://download.csdn.net/download/Sakuya__/89681279https://…

ARP(地址解析协议)详解

1. 引言 在计算机网络中&#xff0c;数据链路层使用MAC地址来传输数据&#xff0c;而网络层使用IP地址来标识设备。当一个设备需要发送数据给另一个设备时&#xff0c;它只知道目标设备的IP地址&#xff0c;而不知道其对应的MAC地址。此时&#xff0c;地址解析协议&#xff08;…

MES、ERP、SCM、WMS、APS、SCADA、PLM、QMS、CRM的区别与联系

你是否与我一样&#xff0c;也曾有过类似的疑惑&#xff1a; 企业数字化转型过程中可能会用到哪些系统&#xff1f;其中&#xff0c;又是在哪些情况下才会用到这些系统&#xff1f; 有了这些疑问&#xff0c;你肯定想知道答案。 为了解决你的心头之患&#xff0c;我花了整整…

Linux C创建进程及父子进程虚拟地址空间(附源码)

1.Linux创建进程 Linux允许一个进程创建新进程&#xff0c;新进程即为子进程&#xff0c;子进程还可以创建新的子进程&#xff0c;形成进程树型结构模型。 #include <sys/types.h> #include <unistd.h> pid_t fork(void); 返回值&#xff1a;成功&#xff1a;子进…

npm包下载慢的解决方案(手把手教你跟换yarn和pnpm设置镜像源)

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 一、npm镜像源二、更换镜像源的步骤1、查看当前镜像源2、改成淘宝镜像源3、删除镜像&#xff0c;恢复默认镜像 三、以…

图森未来创始人之争后续:一场新的争夺战又拉开序幕?

自动驾驶明星公司图森未来&#xff0c;此前陷入一场权力斗争风波。 如今&#xff0c;重掌控制权的创始人陈默和CEO吕程主导下&#xff0c;近期宣布进入生成式AI应用领域&#xff1b;另一个负气出走的创始人侯晓迪&#xff0c;则带着L4级别自动驾驶的理想开始新的创业。 曾经的…

Maven学习(零基础到面试)

1.什么是Maven? maven是一款用于管理和构建java项目的工具 2.Maven的作用&#xff1f; 1.依赖管理&#xff1a;方便快捷的管理项目以来的资源&#xff08;jar包&#xff09;&#xff0c;避免版本冲突问题。 以前的项目需要创建lib包&#xff0c;将网上的jar包资源放入其中使用…

C语言 ——— 将动态版本的通讯录实现为文件存储联系人模式

目录 前言 在退出通讯录之前 在运行通讯录之前 前言 在这篇博客中&#xff0c;实现了动态版本的通讯录&#xff0c;接下来会增加函数&#xff0c;能用文件存储通讯录中的联系人 C语言 ——— 在控制台实现通讯录&#xff08;增删查改、动态开辟内存空间&#xff09;-CSDN…

python如何调用函数库

python对函数库引用的第一种方式 格式是&#xff1a; import<库名> 例如&#xff1a; import turtle 如果需要用到函数库中函数&#xff0c;需要使用&#xff1a; <库名>.<函数名> 例如&#xff1a; import turtleturtle.fd(100) python对函数库引用的第…

书生大模型实战营第三期基础岛第四课——llamaindex+Internlm2 RAG实践

llamaindexInternlm2 RAG实践 基础作业&#xff1a;配置基础环境创建LLAMAINDEX文件夹存放课程相关文件创建模型下载脚本download_hf.py下载 Sentence Transformer 模型下载 NLTK 相关资源LlamaIndex HuggingFaceLLMLlamaIndex RAG新建脚本llamaindex_RAG.pyLlamaIndex web部署…