Leetcode-104. 二叉树的最大深度

【简单】力扣算法题解析LeetCode104:二叉树的最大深度 本文介绍了如何计算二叉树的最大深度。采用深度优先搜索(DFS)的递归方法,通过比较左右子树的最大深度并加1(当前节点)得到结果。该方法时间复杂度为O(n),空间复杂度为O(h),h为树高。代码简洁高效,适用于各种二叉树结构。附带Java实现和示例说明,帮助理解算法原理。 阅读详情

Leetcode-104. 二叉树的最大深度

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

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

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

示例:

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

    3
   / \
  9  20
    /  \
   15   7
返回它的最大深度 3 。

思路1:

    用递归的方法,判断节点是否为空,为空则深度为0,不为空则深度为其左子树、右子树中深度较大者+1.

c++ code:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
     int maxDepth(TreeNode* root) {
         if(root == NULL)
             return 0;
         int left_length = maxDepth(root->left);
         int right_length = maxDepth(root->right);
         return 1 + (left_length > right_length ? left_length : right_length);
     }
};

思路2:

    非递归方法,用queue<TreeNode*> queue_1来存放树节点,然后不断的把所有结点按层入队出队,用before来记录该层结点的数量,用after来记录下一层结点的数量,用deep来记录深度,直到after为0为止。

c++ code:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
        int maxDepth(TreeNode* root) {
            if(root == NULL)
                return 0;
            queue<TreeNode*>  queue_1;
            queue_1.push(root);
            int before = 1;
            int deep = 1;
            int after = 0;
            while(!queue_1.empty()){
                TreeNode* temp = queue_1.front();
                if(temp->left != NULL){
                    queue_1.push(temp->left);
                    after++;
                }
                if(temp->right != NULL){
                    queue_1.push(temp->right);
                    after++;
                }
                queue_1.pop();
                before--;
                if(before == 0 && after != 0){
                    before = after;
                    after = 0;
                    deep++;
                }

            }
            return deep;
        }
};
分布式协作方案:OpenClaw多节点部署与设备互联 主从架构或对等架构服务发现与注册机制负载均衡策略选择分布式任务队列优先级调度失败重试机制WebSocket实时通信数据同步引擎冲突解决策略健康检查机制故障自动转移数据复制与恢复通过分布式部署,OpenClaw可以支撑更大规模的业务场景,提供更稳定可靠的AI助手服务。在下一篇文章中,我们将深入探讨安全与权限管理的精细化策略。 阅读详情

相关推荐

Android System Slice应用加载分析,及启用Slice后,锁屏日期第一次开机正常显示,但后面锁屏不显示问题分析

最近发现Android P上锁屏界面,日期不显示,发现从P开始后,出现了Slice来允许应用以模块化,可交互的方式,插入多个使用场景。Android P的system UI 也使用到了这一特性,表现为锁屏时间,日期,勿扰图标,闹钟等。 如何使用Slice 以System UI中KeyguardSliceView.java来说明它的使用方法 首先,我们打开System UI 的mk 文件,可以看到以...

qq_33595823的博客 3034

【LeetCode】二叉树的最大深度(JavaScript)

题目: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7(为20的两个节点) 返回它的最大深度 3 。 这种求深度的题目可以使用递归的方法求解。 如果该节点为空,直接返回深度;如果不为空,递归其左右节点,再选择左右节点中最大的那个+1。 时间复杂度O(N)。 /** * Definition for a bi

my_z_1234的博客 440

手把手教你使用YOLOv11模型,训练自己数据集,百分百成功(无废话)

YOLOV11百分百成功训练自己的数据集并进行图像、视频流脚本预测

chenhenGzzz的博客 1951

leetcode二叉树的最大深度(js实现)

二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 解题思路 递归实现 如果我们知道了左子树和右子树的最大深度l和r,那么该二叉树的最大深度即为max(l,r) 而左子树和右子树的最大深度又可以以同样的方式进行计算,

qq_41096610的博客 1058

J-Flash手动添加华大HC32F460型号全攻略

在嵌入式开发中,Flash编程算法是连接调试工具与微控制器的重要桥梁,它定义了芯片存储器的擦除、编程和校验等底层操作规范。其原理是通过调试接口将算法代码加载到目标芯片的RAM中执行,从而实现对Flash存储器的访问与控制。这项技术的核心价值在于打破了工具链对芯片型号的固有支持限制,使得开发者能够灵活适配各种新兴或定制化的微控制器。在工程实践中,当面对J-Link等主流调试器官方支持包更新滞后时,手动添加芯片型号成为保障开发效率的关键技能。本文以华大半导体的HC32F460系列MCU为例,详细解析了如何通过配

weixin_29192365的博客 349

从零开始:用7353张VOC/YOLO格式混凝土缺陷数据集训练你的第一个检测模型

本文详细介绍了如何使用7353张VOC/YOLO格式的混凝土缺陷数据集训练首个目标检测模型。从环境配置、数据解析到YOLOv5模型训练与优化,提供了完整的实战指南,特别针对数据不平衡问题给出了解决方案,助力开发者快速掌握混凝土缺陷识别技术。

weixin_42651281的博客 255

js leetcode 104.二叉树的最大深度

Javascript(js) leetcode 104.二叉树的最大深度

qq_41322481的博客 205

第1章第11节:创建可容纳多行滚动文字的输入框TextEditor [SwiftUI快速入门到实战]

TextField可以让用户输入单行的文字内容,若想输入多行的文字内容,可以使用能够容纳多行滚动文字的 TextEditor。 定义一个字符串属性,用来存储用户输入的文字内容。接着定义一个布尔属性,用来标识是否弹出警告窗口,以显示用户输入的内容。 TextEditor是由UIKit中的UITextView演变而来,因此可以在init方法中,通过UITextView修改TextEditor的外观属性。 添加一个VStack视图,作为子视图的容器。 创建一个TextEditor,Te..

互动教程网[www.hdjc8.com] 832

LeetCode-104. 二叉树的最大深度_JavaScript

给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 程序代码 /** * Definition for a binary tree node. * function TreeNode(val, left, right) { * ..

weixin_45344430的博客 621

秋叶ComfyUI整合包使用FRP实现公网访问教程 ComfyUI内网穿透 秋叶整合包

最近在做 ComfyUI 的实验时,我发现很多小伙伴都遇到一个问题:本地启动的 ComfyUI 服务只能在本地访问,想要通过公网远程访问,就必须借助来实现。作为一名前端开发工程师,我花了点时间把 ComfyUI 启动器和 FRP 配置整合了一下,今天就分享给大家。本文适合已经了解。需要注意的是 穿透到公网的话任何人都能访问 为了安全建议看我另一篇帖子加上密码验证 防止恶意攻击。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1344

Node-RED教程(二):Node-RED的面板的操作

Node-RED系列(二):Node-RED的面板的操作 要使用Node-RED去搭建一个物联网平台,链接设备,设备通信,就必须要先熟悉Node-RED的这种面板,对于一个新的项目,在动手做之前一点想对这个的技术的文档有足够的了解做起来才能游刃有余。本期我给大家介绍一下Node-RED的各种面板,熟悉这些面板后,在后续的搭建Iot服务中,会举重若轻,同时该系列的文档,难度会逐步加深,知道了本章解释的名称后对后续文章的理解有很大帮助。 面板1:默认节点选项列表 安装Node-RED后默认的节点分为这5大类

知无涯 1万+

【Java】【JS】LeetCode - 递归 - 迭代 - #104 二叉树的最大深度

心若向阳,无惧悲伤。 力扣力扣:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } function TreeNode(val) { this.val = val; this.

Sabrina_cc的博客 245

安装并新建windows下wxwroks7.0 bootrom工程

安装licence,将zwrsLicense-vx7-perm.lic粘贴到安装目录C盘WindRiver/license下。现在双击Workbench 4,新建vxworks7.0工程,会出现下面的情况,因为没有licence。编译完成binaries下生成wxwroks x86格式,可以修改bootrom硬件信息的配置了。单击x86_wxwroks工程右键,build project编译工程。双击桌面Workbench 4打开,新建windows下工程。新建完成,选择finish。

wangjie36的博客 1922

104. 二叉树的最大深度【 力扣(LeetCode) 】

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。给定一个二叉树 root ,返回其最大深度。【h 是树高,递归最高深度就是树高】

yyh520025的博客 1330

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

LeetCode第104题_二叉树的最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。叶子节点是指没有子节点的节点。

qq_40263592的博客 2211

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Leetcode 104. 二叉树的最大深度

Leetcode 104. 二叉树的最大深度1、问题分析2、问题解决3、总结 1、问题分析 题目链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/   本质上就是一个二叉树的遍历问题。代码我已经进行了详细的注释,理解应该没有问题,读者可以作为参考,如果看不懂(可以多看几遍),欢迎留言哦!我看到会解答一下。 2、问题解决   笔者以C++方式解决。 #include "iostream" using namespace std;

珍惜 8890

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【力扣LeetCode】104 二叉树的最大深度

题目描述(难度易) 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 链接 https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 思路 1、通过递归...

Jiewang的博客 351

LeetCode 104.二叉树的最大深度

目录LeetCode 104.二叉树的最大深度题目描述解题 LeetCode 104.二叉树的最大深度 题目描述 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 解题      /** * Definition for a binary tree node. * struct TreeNode { * int va

s_Shune 2287

瑞_力扣LeetCode_104. 二叉树的最大深度

力扣LeetCode_104. 二叉树的最大深度

阿瑞——从事Java后端,喜欢研读源码、自研框架、分享经验 1228

LeetCode 104.二叉树的最大深度(DFS、BFS)

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

晴空๓ 1948

《LeetCode力扣练习》第104题 二叉树的最大深度 Java

《LeetCode力扣练习》第104题 二叉树的最大深度 Java 一、资源 题目: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回它的最大深度 3 。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-depth-of-bina

XRT_knives的博客 225

(力扣)LeetCode104. 二叉树的最大深度(C语言)

【代码】(力扣)LeetCode104. 二叉树的最大深度(C语言)。拆分递归的细节,从本质认识递归

墨染 677

LeetCode 104二叉树的最大深度

LeetCode 104二叉树的最大深度 题目 解析 写一个递归函数,返回最大深度 代码 /** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) {...

UN_uomo的博客 377

LeetCode 104 二叉树的最大深度

LeetCode 104 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-dep...

sdm12345的博客 231

LeetCode 力扣 104. 二叉树的最大深度 maxDepth

大家觉得写还可以,可以点赞、收藏、关注一下吧! 也可以到我的个人博客参观一下,估计近几年都会一直更新!和我做个朋友吧!https://motongxue.cn 文章目录104. 二叉树的最大深度说明:示例:代码运行结果在这里插入图片描述 104. 二叉树的最大深度 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20

motongxue的博客 652

Leetcode104 二叉树的最大深度 C++,Java,Python

Leetcode104 二叉树的最大深度 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/ 博主Github:https://github.com/GDUT-Rp/LeetCode 题目: 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说...

Rp的博客 288
上一篇: Leetcode-235. 二叉搜索树的最近公共祖先
下一篇: Leetcode-62. 不同路径
WangXu__
博客等级 码龄9年 3粉丝 156原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值