力扣:104. 二叉树的最大深度(Python3)

news2024/9/29 9:30:33

题目:

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

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

来源:力扣(LeetCode)
链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

示例:

示例 1:

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


示例 2:

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

解法:

BFS,遍历过程中记录层数。

代码:

# 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:
        queue = [(1, root)]
        depth = 0
        while queue:
            level, cur = queue.pop(0)
            if cur:
                depth = level if level > depth else depth
                queue.append((level + 1, cur.left))
                queue.append((level + 1, cur.right))
        return depth

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

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

相关文章

使用FileZilla连接本地和服务器进行文件传输

项目场景: 使用FileZilla连接本地和服务器进行文件传输 问题描述 使用FileZilla连接本地和服务器进行文件传输出现150或425 原因分析: 1.防火墙是否开放端口 2.公共ip或账号密码是否正确 解决方案: 从配置到解决问题的步骤 1.下载安装F…

IC修真院 | 业内首个模拟流片项目重磅上线!

自从不久前IC修真院数字方向65nm流片项目上线,就开启了大家对模拟流片项目的“催更”日常。 这里放个口:了解流片项目实战 众所周知IC行业经验至上,其中模拟IC尤甚。 大多数同学在高校中并没有机会接触流片项目,更别说积累经验了…

D. The Enchanted Forest

Problem - D - Codeforces 思路:一直在正向的考虑,这个题从反向考虑更加容易,首先如果k>n的话,初始的一定都可以拿完,并且我们知道生长的蘑菇的总量是n*k个蘑菇,那么如果我们知道剩下了多少个蘑菇&#…

【Java 基础篇】深入理解 Java 管道(Pipes):从基础到高级

Java 管道(Pipes)是一种强大的工具,用于实现进程间通信(Inter-Process Communication,IPC)。在本文中,我们将深入探讨 Java 管道的各个方面,从基础概念到高级用法,旨在帮…

linux-crontab每分钟定时执行/定时任务调度

文章目录 一、前言二、crontab概述2.1、crontab命令简介2.2、linux定时任务分类 三、安装crontab四、crontab使用4.1、crontab语法4.2、定时任务设置4.3、定时任务格式4.4 crontab表达式在线验证 五、实例六、定时任务的日志 一、前言 本文讲解linux上如何调用定时任务&#x…

以太网ARP测试实验

1.1 ARP测试整体框架 当上位机发送ARP请求时,FPGA返回ARP应答数据;当按下FPGA的触摸按键时,FPGA发送ARP请求,上位机返回ARP应答数据。 PLL时钟对eth_rxc的输入时钟进行相位调整;GMII TO RGMI 模块负责将双沿(DDR)数据和…

树莓派安装mariadb

mariadb与mysql十分类似,他们的使用方法类似,默认端口也都是3306 文章参考 树莓派mysql安装配置 – 蒋智昊的博客 目录 1 树莓派系统情况 2 安装mariadb 3 启动数据库 4 设置数据库自启动 5 进入数据库 1 树莓派系统情况 用的是树莓派4&…

Linux性能调优 —— 内存篇

Linux性能调优 —— 内存篇 Linux内存的工作原理 内存映射的概念 虚存空间分布 内存分配与回收 分配 回收 内存查看与分析 查看内存使用情况 命令:free 命令:vmstat 命令:top 分析单个进程 命令:ps -p Linux内存的工作原理…

把api_key 设置成win10系统变量然后python调用

1 设置环境变量存储秘钥 将API密钥存储在环境变量中,而不是直接写在代码中,可以降低泄露密钥的风险。 新建系统变量: 变量名:OPENAI_API_KEY 变量值:OpenAI API秘钥(上一步复制的那个key) 2获取值 import openai i…

torch.cuda.is_available() 在有的项目中返回True有的返回Flase

问题描述,刚下了一个项目,不能用CUDA 同一个环境不同项目中 torch.cuda.is_available() 返回值不同 问题来源: 这里的运行配置有问题 选择编辑配置并修改对应的解释器 查看 和 是否对应。 import torch print(torch.__version__) prin…

iOS蓝牙 Connection Parameters 关键参数说明

1. 先贴苹果文档 《 Accessory Design Guidelines for Apple Devices 》 2. 几个关键词 connection Event Interval 事件间隔,为1.25ms的倍数。可以简单理解为,是两个连接着的蓝牙设备发送“心跳包”的时间间隔; 范围是 6 ~ 3200,即 7.5…

运算符超详细讲解(系统性学习day5)

目录 前言 一、运算符的概念与分类 二、算术运算符 三、关系运算符 四、逻辑运算符 五、赋值运算符 六、运算符的优先级 总结 前言 本篇文章是对运算符的具体讲解。 一、运算符的概念与分类 概念: 运算符就是一种告诉编译器执行特定的数学或逻辑操作的符…

HarmonyOS开发:解决DevEco Studio低版本导入高版本项目运行失败问题

前言 基于DevEco Studio 4.0 Beta2,hvigorVersion为3.0.2,开发了一个项目,上传到了远程仓库,当同事下载后,却始终无法运行,频繁报错,由于API都是使用的9,第一感觉就是开发环境不同&a…

【LeetCode-简单题KMP】232. 用栈实现队列

文章目录 题目方法一:用输入栈和输出栈模拟队列 题目 方法一:用输入栈和输出栈模拟队列 只有输出栈为空的时候才能将输入栈的元素补充到输出栈,否则输出栈不为空,如果再从输入栈往输出栈填充元素,就会弄乱队列的先进先…

Zotero的下载与使用

Zotero的下载与使用 一、Zotero的下载二、Zotero的使用1、导入文献(1)直接拖入(2)在线导入 2、wps插入文献参考3、联动sci hub 实现英文文献一键批量下载 一、Zotero的下载 下载官网:https://www.zotero.org/ 下载地址…

关于feign调用之间boolean类型的序列化问题

报错内容是这样的:这是controller层 这是feign调用层: 调试出错1: 调试出错2: 解决办法:

Pytorch史上最全torch全版本离线文件下载地址大全(9月最新)

以下为pytorch官网的全版本torch文件离线下载地址 torch全版本whl文件离线下载大全https://download.pytorch.org/whl/torch/其中的文件版本信息如下所示(部分版本信息,根据需要仔细寻找进行下载):

STM32F4X UCOSIII 消息队列

STM32F4X UCOSIII 消息队列 消息队列消息队列的作用消息队列工作机制消息队列创建消息发送消息发送模式FIFO(先进先出)LIFO(后进先出) 消息接收消息队列删除消息队列常用函数消息队列创建函数消息队列发送函数消息队列接收函数消息队列删除函数 UCOSIII 消息队列例程 消息队列 …

Foxit PDF SDK Windows 9.1 Crack

Foxit PDF SDK 变更日志 Windows/Linux/Mac 2023 年 8 月 新功能/增强功能 在开始签名之前设置外观。支持使用共享字典添加签名。允许在调用 Signature::StartSign() 之前增量保存文档。在签名前修改现有未签名分页印章签名的外观。支持使用共享字典添加分页签名。忽略全角…

【c语言】指针和数组笔试题

1.指针和数组笔试题解析 一维数组 int a[] { 1,2,3,4 };printf("%d\n", sizeof(a));//a单独放在sizeof内表示求整个数组的字节-----16printf("%d\n", sizeof(a 0));//a不是单独放在sizeof内部,表明是首元素的地址,地址占4/8个字节…