DFS与回溯专题:二叉树的最大深度

    DFS与回溯专题:二叉树的最大深度

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

题目描述

在这里插入图片描述

代码思路

设置两个变量,max来记录最大值,sum来记录路径的节点数量。利用dfs对二叉树进行搜索,遇到节点,则sum+1;遇到叶子节点,则将max与sum进行比较,取最大值

代码纯享版

class Solution {

    public int max = 0;
    
    public int maxDepth(TreeNode root) {
        int sum = 0;
        dfs(root, sum);
        return max;
    }

    void dfs(TreeNode root, int sum){

        if(root == null) return;

        sum ++;

        if(root.left == null || root.right == null){
            max = Math.max(max, sum);
        }

        dfs(root.left, sum);
        dfs(root.right, sum);
    }
}

代码逐行解析版

class Solution {

    public int max = 0; //最长路径上的节点数
    
    public int maxDepth(TreeNode root) {
        int sum = 0; //统计路径上的节点数
        dfs(root, sum);
        return max;
    }

    void dfs(TreeNode root, int sum){

        if(root == null) return; //节点为空,直接返回

        sum ++; //节点不为空,路径上的节点数加一

        if(root.left == null || root.right == null){ //已经是叶子节点
            max = Math.max(max, sum); //记录最大值
        }

        //对该节点的左右子节点进行搜索
        dfs(root.left, sum);
        dfs(root.right, sum);
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文)

系列文章目录 【网络通信基础】网络中的常见基本概念 【网络编程】网络编程中的基本概念及Java实现UDP、TCP客户端服务器程序(万字博文) 【网络原理】UDP协议的报文结构 及 校验和字段的错误检测机制(CRC算法、MD5算法) 文章目…

大模型 AI 框架昇思 MindSpore 2.3.RC1 发布,训练、推理性能大幅提升,JIT 编译强化

经过社区开发者们几个月的开发与贡献,现正式发布昇思 MindSpore2.3.RC1 版本,通过多维混合并行以及确定性 CKPT 来实现超大集群的高性能训练,支持大模型训推一体架构,大模型开发训练推理更简、更稳、更高效,并在训推一…

Golang | Leetcode Golang题解之第46题全排列

题目: 题解: func permute(nums []int) [][]int {var (n len(nums)dfs func(vals []int) // 已选择数 排列为vals 后续回溯继续选择 直至选完ans [][]int)dfs func(vals []int) {//边界if len(vals) n {ans append(ans, vals)}//转移 枚举选哪个f…

Navicat和MySQL的安装、破解以及MySQL的使用(详细)

1、下载 Navicat Navicat 官网:www.navicat.com.cn/ 在产品中可以看到很多的产品,点击免费试用 Navicat Premium 即可,是一套多连数据库开发工具,其他的只能连接单一类型数据库 点击试用 选择系统直接下载 二、安装 Navicat 安…

wsl2 中docker安装完毕后无法正常启动

wsl2 中docker安装完毕后无法正常启动 1、背景2、目标3、环境4、原因4、操作5.1、查看配置5.2、 切换配置5.3、启动docker5.4、验证docker 1、背景 在win10中安装wsl2体验linux操作系统,按照docker官网步骤安装,安装完毕后面提示 $ docker ps Cannot co…

ChatGPT实战100例 - (18) 用事件风暴玩转DDD

文章目录 ChatGPT实战100例 - (18) 用事件风暴玩转DDD一、标准流程二、定义目标和范围三、准备工具和环境四、列举业务事件五、 组织和排序事件六、确定聚合并引入命令七、明确界限上下文八、识别领域事件和领域服务九、验证和修正模型十、生成并验证软件设计十一、总结 ChatGP…

淘宝扭蛋机小程序开发:开启趣味购物新篇章

随着移动互联网的迅猛发展,用户对于购物体验的需求也在不断升级。淘宝作为国内领先的电商平台,始终致力于为用户创造更加新颖、有趣的购物环境。为了满足广大用户的期待,淘宝精心打造了一款全新的扭蛋机小程序,旨在为用户带来前所…

37. UE5 RPG创建自定义的Ability Task

在前面的文章中,我们实现了一个火球术的一些基本功能,火球术技能的释放,在技能释放后,播放释放动画,在动画播放到需要释放火球术的位置时,将触发动画通知,在动画通知中触发标签事件,…

JetBrains RubyMine v2024.1 安装教程 (Rails/Ruby集成开发环境)

前言 JetBrains RubyMine是一款杰出而全面的Ruby代码编辑器,能够深入识别动态语言的细节,为用户提供智能编码辅助功能。它能够自动检测错误代码段,并提供智能的编写和修复代码的建议,帮助用户进行代码重构。此外,Ruby…

在Redux Toolkit中使用redux-persist进行状态持久化

在 Redux Toolkit 中使用 redux-persist 持久化插件的步骤如下: 安装依赖 npm install redux-persist配置 persistConfig 在 Redux store 配置文件中(例如 store.js),导入必要的模块并配置持久化选项: import { combineReducers } from redux; import { persist…

Jmeter插件技术:性能测试中服务端资源监控

性能测试过程中我们需要不断的监测服务端资源的使用情况,例如CPU、内存、I/O等。 Jmeter的插件技术可以很好的实时监控到服务器资源的运行情况,并以图形化的方式展示出来,非常方便我们性能测试分析。 操作步骤: 1、安装插件管理…

主打国产算力 广州市通用人工智能公共算力中心项目签约

4月9日,第十届广州国际投资年会期间,企商在线(北京)数据技术股份有限公司与广州市增城区政府就“广州市通用人工智能公共算力中心”项目进行签约。 该项目由广州市增城区人民政府发起,企商在线承建。项目拟建成中国最…

后端工程师——Java工程师如何准备面试

在国内,Java 程序员是后端开发工程师中最大的一部分群体,其市场需求量也是居高不下,C++ 程序员也是热门岗位之一,此二者的比较也常是热点话题,例如新学者常困惑的问题之一 —— 后端开发学 Java 好还是学 C++ 好。读完本文后,我们可以从自身情况、未来的发展,岗位需求量…

【JVM系列】关于静态块、静态属性、构造块、构造方法的执行顺序

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

Java算法 空间换时间(找重复)

一、算法示例 1、题目:题目:0-999的数组中,添加一个重复的元素,打乱后,找出这个重复元素 代码示例: package com.zw.study.algorithm; import java.util.*; public class XorTest {public static void mai…

Vue报错 Cannot read properties of undefined (reading ‘websiteDomains‘) 解决办法

浏览器控制台如下报错: Unchecked runtime.lastError: The message port closed before a response was received. Uncaught (in promise) TypeError: Cannot read properties of undefined (reading websiteDomains) at xl-content.js:1:100558 此问题困扰了…

可持续发展:制造铝制饮料罐要消耗多少资源?

铝制饮料罐是人们经常使用的日常用品,无论是在购物、午休还是在自动售货机前选择喝什么的时候,很少有人会想知道装他们喝的饮料的罐子到底是如何制成的,或者这些铝罐的原材料是如何进出的。 虽然有化学品和一些合金进入铝饮料罐制造过程或成为…

【VSCode调试技巧】Pytorch分布式训练调试

最近遇到个头疼的问题,对于单机多卡的训练脚本,不知道如何使用VSCode进行Debug。 解决方案: 1、找到控制分布式训练的启动脚本,在自己的虚拟环境的/lib/python3.9/site-packages/torch/distributed/launch.py中 2、配置launch.…

【Qt常用控件】—— 输入类控件

目录 1.1 Line Edit 1.2 Text Edit 1.3 Combo Box 1.4 Spin Box 1.5 Date Edit & Time Edit 1.6 Dial 1.7 Slider 1.1 Line Edit QLineEdit是Qt中的一个控件,用于 接收和显示单行文本输入。 核心属性 属性 说明 text 输⼊框中的⽂本 inputMask 输⼊…

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性,这些洞穴提供了相对稳定的条件,可以促进矿物质沉淀和微生物生长。在火星上,这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…