leetcode刷题104 二叉树的最大深度 Maximum Depth of Binary Tree(简单) Python Java

【AI大模型】核心基石:Transformer架构入门通俗完整解读 文章摘要: Transformer架构是AI大模型(如GPT、Llama等)的核心基石,彻底颠覆了传统RNN/LSTM的逐字计算模式,通过自注意力机制实现全局并行运算和长文本语义理解。本文用通俗语言拆解Transformer的核心模块:位置编码保留语序、多头注意力捕捉上下文关联、掩码机制确保生成逻辑、残差连接稳定训练,并搭配极简PyTorch代码演示Decoder架构的逐字生成过程。Transformer的并行性、可堆叠性和全局注意力优势,使其成为千亿参数大模型的基础。理解Transformer是掌握大模型 阅读详情

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

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

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

示例:
给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。

 

解题思路:

    当root为空时,返回深度0.
    当root.left为空时,就在root.right继续深度查找
    当root.right为空时,就在root.left继续深度查找
    最后返回,root.left 和root.right的深度最大的值+1。

我们只要通过maxDepth分别计算出左子树和右子树的深度,比较这两个深度,取最大值k。那么当前这棵树深度的最大值就变成了k + 1

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

class Solution(object):
    def maxDepth(self, root):
        """
        :type root: TreeNode
        :rtype: int
        """
        if root is None:
            return 0   
        
        if root.left == None:
            return self.maxDepth(root.right) + 1
        if root.right == None:
            return self.maxDepth(root.left) + 1
            
        return max(self.maxDepth(root.left), self.maxDepth(root.right))+1

 

以下是Java版本:

这是一道比较简单的树的题目,可以有递归和非递归的解法,递归思路简单,返回左子树或者右子树中大的深度加1,作为自己的深度即可,代码如下:

1.	public int maxDepth(TreeNode root) {  
2.	    if(root == null)  
3.	        return 0;  
4.	    return Math.max(maxDepth(root.left),maxDepth(root.right))+1;  
5.	}  

非递归解法一般采用层序遍历(相当于图的BFS),因为如果使用其他遍历方式也需要同样的复杂度O(n). 层序遍历理解上直观一些,维护到最后的level便是树的深度。代码如下:

1.	public int maxDepth(TreeNode root) {  
2.	    if(root == null)  
3.	        return 0;  
4.	    int level = 0;  
5.	    LinkedList<TreeNode> queue = new LinkedList<TreeNode>();  
6.	    queue.add(root);  
7.	    int curNum = 1; //num of nodes left in current level  
8.	    int nextNum = 0; //num of nodes in next level  
9.	    while(!queue.isEmpty())  
10.	    {  
11.	        TreeNode n = queue.poll();  
12.	        curNum--;  
13.	        if(n.left!=null)  
14.	        {  
15.	            queue.add(n.left);  
16.	            nextNum++;  
17.	        }  
18.	        if(n.right!=null)  
19.	        {  
20.	            queue.add(n.right);  
21.	            nextNum++;  
22.	        }  
23.	        if(curNum == 0)  
24.	        {  
25.	            curNum = nextNum;  
26.	            nextNum = 0;  
27.	            level++;  
28.	        }  
29.	    }  
30.	    return level;  
31.	}  

 

nvidia系列教程-AGX-Orin系统刷机及备份 NVIDIA AGX Orin 是一款高性能的嵌入式计算平台,专为边缘计算和 AI 应用而设计。为了确保系统的稳定性和适应不同的应用场景,用户可能需要对 AGX Orin 进行系统刷机和备份操作。本文将详细介绍如何完成这些操作,帮助您更好地管理和维护 AGX Orin 设备。通过以上步骤,您可以成功地为 NVIDIA AGX Orin 刷写系统并创建备份。这些操作不仅能帮助您保持系统的更新和安全,还能在遇到问题时快速恢复系统。 阅读详情

相关推荐

Android WLAN STA/AP 并发

Android 9 引入了可让设备同时在 STA 和 AP 模式下运行的功能。对于支持双频并发 (DBS) 的设备,此功能让一些新功能得以实现,例如在用户想要启用热点 (softAP) 时不会中断 STA WLAN。

华南烹鱼宴 1247

react Maximum update depth exceeded. This can happen when a component repeatedly calls...

Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside componentWillUpdate or componentDidUpdate. React limits the number of nested updates to prevent infinit...

qq_34477855的博客 3万+

Dirsearch的下载、安装和使用(全)

Dirsearch工具的下载、安装和使用,超详细超全面

weixin_68416970的博客 1万+

二叉树的最大深度(Maximum Depth of Binary Tree)java

二叉树的最大深度(Maximum Depth of Binary Tree)java 题干 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大...

下雨了_简的博客 1407

PAT|中国大学MOOC-浙江大学翁恺-C语言程序设计习题集(更新中)

##2-0. 整数四则运算 时间限制:400 ms 内存限制:65536 kB 代码长度限制:8000 B 判题程序:Standard 作者:乔林(清华大学) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 ...

小鱼波波波 6万+

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp

[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp 文章目录[misc]智能车协议分析:2020网鼎杯青龙组misc_teslaaaaa_wp分析log文件格式分析协议组成UDS网络传输层UDS统一诊断服务协议分析文件提取文件逆向flag计算参考链接: teslaaaaa这道题是青龙组被做出来的题目中做出来人数最少的,直到比赛快结束才有第一个人做出来,怎么说,难并不是因为脑洞大,讲道理这道题是一道好题,我当时也是肝了一天没做出来,我倒是把文件提取出来了,奈何比赛时间已经接近尾

Breeze的博客 1万+

SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to

SimpleDeserializer encountered a child element, which is NOT expected, in something it was trying to deserialize. 解决方案 去掉server-config.wsdd文件中的style=“document” use=“literal” ...

yuliangybzc的博客 2159

(53页PPT)新型智慧病房整体解决方案(附下载方式)

当前医疗场景存在三大核心矛盾:院内感染风险(如输液异常发现滞后)、信息孤岛现象(11类业务系统数据割裂)、管理效能不足(30%护理时间耗费在机械性工作)。实际案例显示,整体运营效率提升40%,患者满意度提高28个百分点,真正实现了"让技术有温度,让数据会说话"的价值理念。本文将从需求分析、技术架构、应用场景三个维度,深度剖析这份53页解决方案的创新价值与实践路径。床旁智能终端整合12项功能:包括体征自动采集(误差率<1%)、医嘱执行核对(100%条码校验)、智能床垫离床报警(响应时间3秒)等。

AI_data_cloud的博客 716

Leetcode:maximum_depth_of_binary_tree题解

一、     题目    给定一个二叉树,求它的最大深度。最大深度是沿从根节点,到叶节点最长的路径。 二、     分析    (做到这里发现接连几道题都是用递归,可能就是由于自己时挑的简单的做的吧。)    找出最深路径,则每经过一个节点要加上1,当遇到空节点时,返回0。    在网上看了看有的做法除了麻烦点可是非常不错的方法,比方使用栈和队列等 /** * Def...

weixin_33859504的博客 109

【没有网络,安装python包】如何从 PyPI 下载并安装 Plotly 的离线包

在某些情况下,您可能需要在没有互联网连接的环境中安装 Python 包,例如在飞机上、在某些受限制的网络环境中或在需要离线安装的场景下。以下是如何在 PyPI(Python Package Index)下载 Plotly 包并进行离线安装的详细步骤。

赖德发的博客 1103

前端Three.js面试题及参考答案

渲染循环(Render Loop)是 Three.js 中一个非常重要的概念,它是一个不断重复执行的过程,用于更新和渲染 3D 场景。在每次循环中,渲染循环会更新场景中的对象状态,如位置、旋转、缩放等,然后使用渲染器将更新后的场景渲染成 2D 图像显示在屏幕上。通过不断地重复这个过程,就可以实现动画效果。渲染循环的核心作用是确保场景能够实时更新,给用户带来流畅的视觉体验。如果没有渲染循环,场景将是静态的,不会有任何变化。只有通过不断地更新和渲染,才能让场景中的对象动起来,实现各种动画效果。

大模型大数据攻城狮的专栏 2722

Leetcode104. Maximum Depth of Binary Tree

Leetcode104. Maximum Depth of Binary Tree Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf nod...

magic_jiayu的博客 275

080、多轴运动控制:插补器设计(螺旋线插补)

本文分享了螺旋线插补器设计的实战经验。针对五轴点胶机Z轴抖动问题,作者分析了螺旋线数学本质,提出基于归一化时间参数的速度规划方法,强调各轴严格同步的重要性。文章详细介绍了速度分解、加减速处理、嵌入式优化技巧(查表法、定点化),并总结了起点闭合、速度波动、数值处理等常见问题解决方案。最后给出5条实用建议:注重速度规划而非纯数学推导、预先仿真、保留调试接口、考虑机械谐振、防范编码器丢脉冲。通过优化插补周期、电子齿轮比和S形速度曲线,成功将设备良率从60%提升至95%。

m0_50546716的博客 85

LeetCode 104: 二叉树的最大深度 Maximum Depth of Binary Tree

题目: 给定一个二叉树,找出其最大深度。Given a binary tree, find its maximum depth.二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。T...

爱写Bug 231

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LeetCode 104 Maximum Depth of Binary Tree(二叉树的最大深度)

翻译给定一个二叉树,找出它的最大深度。最大深度是指的从根节点一直到最远的叶节点中所有的节点数目。原文Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest lea

nomasp 4679

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

[leetcode 104]Maximum Depth of Binary Tree

Question: Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. Code: 主要是边界判断 /** * De...

andun6858的博客 191

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Leetcode#104. Maximum Depth of Binary Tree(最大二叉树的深度)

题目Given a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.题意给你一个二叉树,求出二叉树的最大的深度。分析递归模型为: f(root)==0

xunalove的博客 374

leetcode 111. Minimum Depth of Binary Tree(求二叉树的最小深度,DFS,BFS)

题目要求 给定一个二叉树,求其最小深度。 最大深度:从根结点到叶子结点包含的节点的最小个数。 注意: 叶子结点说的是一个没有孩子的节点。 注意和 解答:leetcode 104. Maximum Depth of Binary Tree (求二叉树的最大深度,DFS,BFS)的不同!!!!!!!! 输入示例 Example: 输入一个二叉树 [3,9,20,null,null,15,7], ...

爱喝舒化奶的博客 659

LeetCode104 Maximum Depth of Binary Tree

详细见:leetcode.com/problems/maximum-depth-of-binary-tree Java Solution: github package leetcode; /* * Given a binary tree, find its maximum depth. The maximum depth is the number of nodes a

zxwtry的博客 454

算法leetcode|剑指 Offer 55 - I. 二叉树的深度|104. 二叉树的最大深度(rust和go)

输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。

二当家的白帽子 531

LeetCode—111. Minimum Depth of Binary Tree & 104. Maximum Depth of Binary Tree

LeetCode—111. Minimum Depth of Binary Tree 题目 https://leetcode.com/problems/minimum-depth-of-binary-tree/description/ 二叉树的最小深度。 思路及解法 递归 这道题其实需要想明白有哪几种情况: 父节点为空,深度是0 父节点不为空时,最小深度不一定就是两棵树中较小的深度,有可能一棵...

pnnngchg的博客 209

leetcode 104. 二叉树的最大深度 Maximum Depth of Binary Tree(使用c++/java/python)

https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ https://leetcode.com/problems/maximum-depth-of-binary-tree/ 递归。计算左子树高度和右子树高度的较大者。记得+1。 执行用时: c++ 4ms; java 1ms; python 68ms   c++ ...

茶佬牛逼 357

[leetCode刷题笔记]2017.04.16

496. Next Greater Element I 建立nums中每个元素与其大一点值的映射, class Solution(object): def nextGreaterElement(self, findNums, nums): """ :type findNums: List[int] :type nums: List[int

WLSK801的博客 528

[LeetCode] 111. Minimum Depth of Binary Tree 二叉树的最小深度

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 给一个二叉树,找出它的最小深度。最小深度是从根节点向下到最近的叶节点的最短路...

weixin_30347335的博客 198

每天一更 Leecode每日一题--maxDepth 二叉树的最大深度

题目 解题 算法: DFS深度优先搜索和BFS广度优先搜索 1.递归 这里算法代码是递归,但实际使用的是DFS,深度优先搜索 算法: 步骤: code: # Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # se...

孤独的根号三sw的博客 804

【简单】104. 二叉树的最大深度

【题目】 给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 来源:leetcode 链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 【示例】 给定二叉树 [3,9,20,null,null,15,7] 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 【代码:使用后序遍历】 class Solution { public: //使用后序遍历 in

... 195
上一篇: leetcode刷题88 合并两个有序数组 Merge Sorted Array(简单) Python Java
下一篇: python 中 is, is not ,==, != 的区别
SpringRolls
博客等级 码龄9年 73粉丝 129原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值