当前位置: 首页 > news >正文

Leetcode 104. 二叉树的最大深度(Java-深度遍历)

题目描述:

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

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

示例:

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

示例 2:

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

提示:

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

上代码,拿去即可运行:

package onlyqi.daydayupgo07.suanfa;import javafx.util.Pair;
import lombok.Data;import java.util.ArrayDeque;
import java.util.Objects;
import java.util.Queue;
import java.util.Stack;public class MaxTreeDep {public static void main(String[] args) {TreeNode treeNode1 = new TreeNode(3);TreeNode treeNode2 = new TreeNode(9);TreeNode treeNode3 = new TreeNode(20);TreeNode treeNode4 = new TreeNode(15);TreeNode treeNode5 = new TreeNode(7);TreeNode treeNode6 = new TreeNode(66);treeNode2.setRight(treeNode6);treeNode1.setLeft(treeNode2);treeNode1.setRight(treeNode3);treeNode3.setLeft(treeNode4);treeNode3.setRight(treeNode5);System.out.println(getMaxDep1(treeNode1));}// 广度优先遍历public static Integer getMaxDep1(TreeNode treeNode) {if (Objects.isNull(treeNode)) {return 0;}int maxDep = 1;Queue<Pair<TreeNode, Integer>> queue = new ArrayDeque<>();queue.offer(new Pair<>(treeNode, 1));TreeNode temNode = treeNode;while (!queue.isEmpty()) {Pair<TreeNode, Integer> nodeIntegerPair = queue.poll();maxDep = Math.max(nodeIntegerPair.getValue(), maxDep);Integer dep = nodeIntegerPair.getValue();temNode = nodeIntegerPair.getKey();System.out.println("==============:" + temNode.value);if (temNode.left != null) {queue.offer(new Pair<>(temNode.left, dep + 1));}if (temNode.right != null) {queue.offer(new Pair<>(temNode.right, dep + 1));}}return maxDep;}// 深度优先遍历public static Integer getMaxDep(TreeNode treeNode) {if (Objects.isNull(treeNode)) {return 0;}Stack<Pair<TreeNode, Integer>> stack = new Stack<>();stack.push(new Pair<>(treeNode, 1));int maxDepth = 0;while (!stack.isEmpty()) {Pair<TreeNode, Integer> current = stack.pop();TreeNode currentKey = current.getKey();Integer dep = current.getValue();maxDepth = Math.max(maxDepth, dep);System.out.println("==============:" + currentKey.value);if (!Objects.isNull(currentKey.right)) {stack.push(new Pair<>(currentKey.right, dep + 1));}if (!Objects.isNull(currentKey.left)) {stack.push(new Pair<>(currentKey.left, dep + 1));}}return maxDepth;}
}@Data
class TreeNode {int value;TreeNode left;TreeNode right;public TreeNode(int value) {this.value = value;}
}

运行结果:

慢慢来才是最快的方法--天涯明月    共勉

我要刷300道算法题,第138道 。 希望自己可以坚持下去  。

相关文章:

Leetcode 104. 二叉树的最大深度(Java-深度遍历)

题目描述&#xff1a; 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 示例&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;3示例 2&#xff1a; 输入&#xff1a;…...

阳明心学-传习录学习总结

资料 王阳明介绍&#xff1a;明代杰出的思想家、军事家、教育家&#xff1b;自刑部主事历任贵州龙场驿丞、庐陵知县、右佥都御史、南赣巡抚、两广总督等职&#xff0c;接连平定南赣、两广盗乱及宸濠之乱&#xff0c;因功获封“新建伯”&#xff0c;成为明代因军功封爵的三位文…...

macOS sequoia 15.1中应用程序“程序坞”没有权限打开

在macOS sequoia 15.1版本中新安装的应用程序在访达中打开报错显示应用程序“程序坞”没有权限打开“(null)”。 解决办法 在启动台中找到终端&#xff0c;点击打开&#xff0c;切换到应用目录下&#xff0c;输入 cd /Applications/ 找到需要打开的应用程序目录&#xff0…...

使用 MinIO 和 KKFileView 实现在线文件预览功能

在项目开发中&#xff0c;文件的在线预览是常见的需求&#xff0c;尤其是对 PDF、Word、Excel 等格式的文件进行无客户端依赖的直接查看。本文将介绍如何通过 MinIO 和 KKFileView 搭建在线文件预览服务&#xff0c;并通过 docker-compose 一键部署。 一、环境准备 1. Docker …...

Conda-Pack打包:高效管理Python环境

在Python开发中&#xff0c;环境管理是一个不可忽视的重要环节。Conda是一个流行的包管理器和环境管理器&#xff0c;它允许用户创建隔离的环境&#xff0c;以避免不同项目之间的依赖冲突。Conda-pack是一个工具&#xff0c;可以帮助我们将一个conda环境打包成一个可移植文件&a…...

云服务器上搭建 WordPress 全流程指南

WordPress 是全球最受欢迎的开源内容管理系统&#xff08;CMS&#xff09;&#xff0c;通过 WordPress&#xff0c;你可以轻松搭建博客、企业网站或电子商务平台。而通过云服务器搭建 WordPress&#xff0c;可以使网站获得更好的性能和灵活性。本文将为你提供详细的步骤&#x…...

图像超分辨率技术新进展:混合注意力聚合变换器HAAT

目录 1. 引言&#xff1a; 2. 混合注意力聚合变换器&#xff08;HAAT&#xff09;&#xff1a; 2.1 Swin-Dense-Residual-Connected Block&#xff08;SDRCB&#xff09;&#xff1a; 2.2 Hybrid Grid Attention Block&#xff08;HGAB&#xff09;&#xff1a; 3. 实验结…...

文件IO——01

1. 认识文件 1&#xff09;文件概念 “文件”是一个广义的概念&#xff0c;可以代表很多东西 操作系统里&#xff0c;会把很多的硬件设备和软件资源抽象成“文件”&#xff0c;统一管理 但是大部分情况下的文件&#xff0c;都是指硬盘的文件&#xff08;文件相当于是对“硬…...

【opencv入门教程】5. Mat 类用法

文章选自&#xff1a; 一、BackGround Mat对象是一种图像数据结构&#xff0c;它是一个容器&#xff0c;存储任何通道任何数的图片数据以及对应的矩阵&#xff0c;使用完成后&#xff0c;内存自动释放。二、Code void Samples::MatFunc() {1. 图像处理// 方法1&#xff1a;…...

SSM虾米音乐项目2--分页查询

1.分页查询的底层逻辑 首先根据用户输入的流派&#xff0c;进行模糊查询根据查询的数据进行分页需要前端用户提供pageNo(当前页数)和pageSize(每页的数据量)并且要从后端计算count(总数据量)和totalPage(总页数)&#xff0c;以及startNum(每页开始的记录)从而将对应的页面数据…...

nodejs 获取本地局域网 ip 扫描本地端口

因为傻逼老板的垃圾需求&#xff0c;不得不成长 示例代码&#xff1a; 获取本地局域网 ip 地址&#xff1a; 需要注意的是&#xff1a;如果存在虚拟机网络&#xff0c;则返回的是虚拟机网络的 ipv4 地址 import os from os; export const getLocalIp () > {const in…...

区块链签名种类

1. eth_sign 简介&#xff1a;最早实现的签名方法&#xff0c;用于对任意数据进行签名。签名内容&#xff1a;直接对原始消息的哈希值进行签名。特点&#xff1a; 安全性较低&#xff0c;因为签名的消息没有明确的上下文或结构。很容易被滥用&#xff0c;攻击者可以伪造签名内…...

【062B】基于51单片机无线病房呼叫系统(+时间)【Keil程序+报告+原理图】

☆、设计硬件组成&#xff1a;51单片机最小系统NRF24L01无线模块DS1302时钟芯片LCD1602液晶显示按键设置蜂鸣器LED灯。 1、本设计采用STC89C51/52、AT89C51/52、AT89S51/52作为主控芯片&#xff0c;采用LCD1602液晶显示呼叫信息&#xff0c;系统共有两个板子&#xff08;一个接…...

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!

文章链接&#xff1a;https://arxiv.org/pdf/2411.18623 项目链接&#xff1a;https://lift3d-web.github.io/ 亮点直击 提出了Lift3D&#xff0c;通过系统地提升隐式和显式的3D机器人表示&#xff0c;提升2D基础模型&#xff0c;构建一个3D操作策略。 对于隐式3D机器人表示&a…...

【pyspark学习从入门到精通24】机器学习库_7

目录 聚类 在出生数据集中寻找簇 主题挖掘 回归 聚类 聚类是机器学习中另一个重要的部分&#xff1a;在现实世界中&#xff0c;我们并不总是有目标特征的奢侈条件&#xff0c;因此我们需要回归到无监督学习的范式&#xff0c;在那里我们尝试在数据中发现模式。 在出生数据…...

Echart折线图属性设置 vue2

Echart折线图 官方配置项手册 Documentation - Apache ECharts 下面代码包含&#xff1a;设置标题、线条样式、图例圆圈的样式、显示名称格式、图片保存、增加Y轴目标值 updateChart(data) {const sortedData data.slice().sort((a, b) > new Date(a.deviceTime) - ne…...

LabVIEW-简单串口助手

LabVIEW-简单串口助手 串口函数VISA配置串口VISA写入函数VISA读取函数VISA资源名称按名称解除捆绑 函数存放位置思维导图主体界面为以下 串口函数 VISA配置串口 VISA写入函数 VISA读取函数 VISA资源名称 按名称解除捆绑 函数存放位置 思维导图 主体界面为以下 从创建好的“枚举…...

Linux下,用ufw实现端口关闭、流量控制(二)

本文是 网安小白的端口关闭实践 的续篇。 海量报文&#xff0c;一手掌握&#xff0c;你值得拥有&#xff0c;让我们开始吧&#xff5e; ufw 与 iptables的关系 理论介绍&#xff1a; ufw&#xff08;Uncomplicated Firewall&#xff09;是一个基于iptables的前端工具&#xf…...

C#开发-集合使用和技巧(九)Join的用法

在C#中&#xff0c;IEnumerable 的 Join 方法用于根据键将两个序列中的元素进行关联。Join 方法通常用于执行类似于 SQL 中的内连接操作。以下是 Join 方法的基本用法&#xff1a; 基本语法 public static IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult…...

Dockerfile容器镜像构建技术

文章目录 1、容器回顾1_容器与容器镜像之间的关系2_容器镜像分类3_容器镜像获取的方法 2、其他容器镜像获取方法演示1_在DockerHub直接下载2_把操作系统的文件系统打包为容器镜像3_把正在运行的容器打包为容器镜像 3、Dockerfile介绍4、Dockerfile指令1_FROM2_RUN3_CMD4_EXPOSE…...

ElevenLabs语音合成效果翻倍的秘密(行业未公开的声学参数调优矩阵)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;ElevenLabs英文语音合成效果翻倍的核心洞察 关键瓶颈在于语音上下文建模粒度 ElevenLabs 的高质量语音合成并非单纯依赖更大模型参数量&#xff0c;而是通过细粒度的语义-韵律联合编码实现自然度跃升。…...

终极指南:Windows平台APK安装器如何让安卓应用无缝运行

终极指南&#xff1a;Windows平台APK安装器如何让安卓应用无缝运行 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在Windows电脑上运行安卓应用曾经是一个技术难题&am…...

终极D2DX宽屏补丁:让经典暗黑破坏神2在现代PC上完美重生

终极D2DX宽屏补丁&#xff1a;让经典暗黑破坏神2在现代PC上完美重生 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还…...

Unity游戏接入TapTap登录,从后台配置到打包上线的完整避坑指南

Unity游戏接入TapTap登录的全流程避坑指南&#xff1a;从配置到上线的实战经验 在独立游戏开发领域&#xff0c;TapTap平台凭借其庞大的用户基础和便捷的登录系统&#xff0c;已成为许多开发者的首选接入方案。然而&#xff0c;从后台配置到最终打包上线的完整流程中&#xff0…...

别再死记硬背公式了!用Python+NumPy手把手带你仿真RLC串联谐振(附代码)

用PythonNumPy动态仿真RLC串联谐振&#xff1a;告别枯燥公式&#xff0c;直观理解电路本质 当你第一次翻开电路分析教材&#xff0c;看到那些密密麻麻的公式推导和抽象的频率响应曲线时&#xff0c;是否感到一阵眩晕&#xff1f;RLC串联谐振作为电路分析的核心概念&#xff0c;…...

基于MCP协议的AI Agent远程SSH安全操作实践指南

1. 项目概述与核心价值最近在折腾AI Agent的开发&#xff0c;发现一个挺有意思的现象&#xff1a;很多开发者都卡在了“如何让AI安全、可控地操作远程服务器”这一步。你可能会想到直接给AI一个SSH私钥&#xff0c;但这无异于把自家大门的钥匙扔给一个还在学习走路的机器人&…...

fold命令行工具:高效文本数据聚合与分析的瑞士军刀

1. 项目概述&#xff1a;一个为“折叠”而生的高效工具 最近在折腾一些数据处理和文件整理的工作流时&#xff0c;我一直在寻找一个能让我“折叠”起来思考的工具。我说的“折叠”&#xff0c;不是物理上的&#xff0c;而是逻辑上的——把复杂的、多维度的信息&#xff0c;按照…...

OpenClawTuto:从零构建高可靠GUI自动化脚本的工程实践指南

1. 项目概述与核心价值 最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“OpenClawTuto”。光看名字&#xff0c;你可能会有点懵&#xff0c;这“OpenClaw”是啥&#xff1f;是开源爪子&#xff1f;还是某种工具&#xff1f;其实&#xff0c;这是一个围绕“OpenClaw”这个…...

基于意图与技能解耦的智能对话系统构建指南

1. 项目概述&#xff1a;一个意图与技能驱动的AI对话引擎最近在折腾AI应用开发&#xff0c;特别是对话型AI助手时&#xff0c;发现一个核心痛点&#xff1a;如何让AI不仅能理解用户说了什么&#xff08;意图识别&#xff09;&#xff0c;还能精准地调用相应的功能&#xff08;技…...

智能GUI自动化:从SAG架构到实战部署的完整指南

1. 项目概述与核心价值最近在开源社区里&#xff0c;我注意到一个挺有意思的项目&#xff0c;叫openclaw-skill-sag。乍一看这个标题&#xff0c;可能会觉得有点抽象&#xff0c;但如果你对自动化、机器人流程自动化&#xff08;RPA&#xff09;或者智能体&#xff08;Agent&am…...