求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

我用 Claude Code 给 Spring Boot 老项目做了一次代码 Review:查出 4 类隐藏问题 接手 Spring Boot 老项目时,真正麻烦的往往不是编译报错,而是分散在业务代码中的空指针、N+1 查询、异常吞没和并发隐患。本文记录一次使用 Claude Code 辅助代码 Review 的完整流程,并给出提示词、Java 示例、修改方案和人工复核方法。 阅读详情

题目描述:

求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

解题思路:

1.检测当前的根节点是否为空,为空则压根没有最小深度return null,如果不为空,我们新建一个arraylist
储存所有叶节点的depth,同时我们从根节点开始dfs(call DFS function).
2.DFS function 内,我们首先需要检测当前收到的节点是不是叶节点,如果是,我们就把他的深度放进arraylist里。
如果不是叶节点,我们继续用dfs循环往下找他的左孩子和右孩子。
3.我们return回arraylist的最小值,这便是二叉树的最小深度。

示例:在这里插入图片描述
代码:

import java.util.Collections;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 * }
 */

public class Solution {
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    public int run (TreeNode root) {
      if(root==null){
        return 0;
      }
      ArrayList<Integer> list=new ArrayList<>();
      dfs(root,1,list);
      return Collections.min(list);
    }
  
  public void dfs(TreeNode root,int depth,ArrayList<Integer> list){
    if(root.left==null&&root.right==null){
      list.add(depth);
    }
    if(root.left!=null){
      dfs(root.left,depth+1,list);
    }
    if(root.right!=null){
      dfs(root.right,depth+1,list);
    }
  }       
}
基于Java的OPC UA Server开发指南:从零开始构建高效服务器 本文介绍了如何使用开源项目org.eclipse.milo创建Java OPC UA Server。通过创建Spring Boot项目,添加Milo SDK依赖,定义Namespace类,服务器启动类以及监听器,详细阐述了建立OPC UA Server服务的步骤。启动后,服务器默认监听地址为opc.tcp://localhost:12685,可使用Softing OPC Client进行连接。 阅读详情

相关推荐

DaVinci Developer中枚举类型变量的创建与实战应用

本文详细介绍了在DaVinci Developer中创建和使用枚举类型变量的方法与实战应用。通过智能温控系统的案例,阐述了枚举类型在嵌入式开发中的核心价值,包括提升代码可读性、类型安全性和维护便捷性。文章还提供了枚举类型在状态机实现和多模块协同中的高级应用技巧,以及调试与优化的实用建议。

ik678901234的博客 511

111. 二叉树的最小深度

111. 二叉树的最小深度 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. DFS 首先可以想到使用深度优先搜索的方法,遍历整棵树,记录最小深度。 对于每一个非叶子节点,我们只需要分别计算其左右子树的最小叶子节点深度。这样就将一个大问题转化为了小问题

pukka的博客 568

视觉开发板—K210自学笔记(三)--点亮LED

K210点亮LED灯

adamsecond 3412

二叉树简单 LeetCode111. 二叉树的最小深度 NC234 二叉树的最小深度

111. 二叉树的最小深度 描述 给定一颗节点数为N的二叉树,求其最小深度。最小深度是指树的根节点到最近叶子节点的最短路径上节点的数量。 (注:叶子节点是指没有子节点的节点。) import java.util.*; public class Solution { public int run (TreeNode root) { if(root == null){ return 0; } int l = run(root.lef

31楼下小黑的博客 626

全网最全医学图像数据汇总

本仓库汇总了多个领域的医学图像开源数据集,涵盖CT、MRI、超声、内窥镜、病理、多模态、PET、OCT以及皮肤镜等多种成像技术。每个数据集均详细列出了任务类型、部位、格式、数量及下载链接,旨在为医学图像研究者提供便捷的资源导航。⚠️:这些数据集仅适用于学术研究用途。

2401_83173765的博客 3318

【020】C++ 动态内存管理解析:new 和 delete 的正确使用

C++中的动态内存分配是在程序运行时根据需要进行内存空间的分配和释放,与静态内存分配相比,具有更大的灵活性和适应性。动态内存分配可以通过new和delete或者malloc()和free()等函数实现。在程序运行时无法确定所需的内存大小。需要在多个函数之间共享数据,并且数据可能被频繁地创建和销毁。静态数组无法满足需求,例如需要支持可变长度数组。如果在动态分配内存后忘记了释放它,则会导致内存泄漏。为避免内存泄漏,可以使用智能指针或手动管理内存的方式来释放动态分配的内存。

Lion_Long的博客 1470

leetcode 111 学习笔记(求树深度,递归迭代)

文章目录111. 二叉树的最小深度问题描述思路 1、递归法 2、迭代法 111. 二叉树的最小深度 问题描述 传送门 思路 直觉上好像和求最大深度差不多,其实还是差不少的。 遍历顺序上是后序遍历(因为要比较递归返回之后的结果),但在处理中间节点的逻辑上,最大深度很容易理解,最小深度可有一个误区,如图: 题目中说的是: 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 注意是叶子节点。 1、递归法 ①确定递归函数的参数和

晓梦林的博客 370

手把手教你学Simulink——基于智能电网与AI融合的场景实例:强化学习在并网逆变器控制中的应用

本文介绍了如何利用Simulink和强化学习工具包实现并网逆变器的智能控制。针对传统PI控制方法的局限性,提出采用强化学习(RL)构建自适应控制系统。通过详细步骤展示了从建立主电路模型、设计强化学习环境、选择训练智能体(如PPO算法)到仿真对比测试的全过程。实验结果表明,RL控制器在动态响应、THD指标和参数鲁棒性等方面优于传统PI控制器,突显了数据驱动控制在复杂电力系统中的优势。文章还探讨了该技术在微电网协同控制、在线学习等场景的拓展应用,为智能电网控制提供了新思路。

MHD0815的博客 335

LeetCode 111. 二叉树的最小深度(C++)

题目: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 思路: !!!递归的终止条件:遍历到叶子结点,这里极容易错误的将遍历到节点为空作为递归终止条件,从而产生错误。 /** * Definition for a bin...

my_clear_mind的博客 534

AI使能的SVD算子:基于深度学习的矩阵分解方法

奇异值分解(Singular Value Decomposition, SVD)是线性代数中一种重要的矩阵分解方法,广泛应用于信号处理、数据降维、推荐系统等领域。传统SVD算法虽然精确,但在处理大规模矩阵时面临计算复杂度高、内存需求大等问题。本文提出了一种基于深度学习神经网络的SVD算子实现方法,完全摒弃传统数值算法,仅使用PyTorch框架构建的神经网络模型来完成大规模信道矩阵的SVD分解与还原。

huanghm88的专栏 1315

[QMT量化交易小白入门]-二十四、年化收益47%的全球核心资产轮动策略(含代码解析)

m_days = 25 #动量参考天数period=200m_days被设置为25,表示动量参考的天数为25天;period被设置为200,用于指定获取市场数据的周期长度。

木头大左的博客 2967

求给定二叉树的最小深度 # 最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量

求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 分4种情况分析: 1 没有根节点 2 只有根节点 3 二叉树的根节点只有左子树 or 只有右子树 4 根节点左子树和右子树都有 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * } *

qq_31217363的博客 530

Python 爬虫实战:爬取豆瓣电影 Top250 完整数据

本文基于Python技术实现了豆瓣电影Top250榜单数据的合规爬取与分析。针对豆瓣电影页面的分页结构、反爬机制等特点,采用requests库获取数据,结合BeautifulSoup解析HTML节点,并通过正则表达式提取电影名称、评分、导演等核心字段。爬虫实现了随机User-Agent、请求间隔控制等反爬规避策略,严格遵守豆瓣社区使用规范。最终数据经清洗后存储为结构化Excel文件,并提供了数据可视化与增量更新方案。该方案为影视研究提供了可靠的数据获取方法,同时确保符合非商业使用、适度爬取等合规要求。

2503_91057718的博客 3459

Leetcode: 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 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 le...

LeetCode:Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which minimizes the sum 821

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Leetcode:求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

LeetCode 牛客网 二叉树 题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 题目分析 方法一 递归,若为空树返回0; 若左子树为空,则返回右子树的最小深度+1;(加1是因为要加上根这一层,下同) 若右子树为空,则返回左子树的最小深度+1; 若左右子树均不为空,则取左、右子树最小深度的较小值,+1; 下面是Java代码 import java.util.*; /* * public class TreeNode { * int val = 0;

gaozhuang63的博客 517

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

[数据结构与算法]求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。...

解题思路: 刚开始想到的就是利用回溯,树的最小深度等于树的左右子树的最小深度+1; 根据这个想法,写出解题算法 public class Solution { public int run(TreeNode root) { TreeNode node = root; //递归的边界条件 如果当前节点为null 高度为0 ...

weixin_30478923的博客 363

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

java二叉树最短路径之和_[数据结构与算法]求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。...

解题思路:刚开始想到的就是利用回溯,树的最小深度等于树的左右子树的最小深度+1;根据这个想法,写出解题算法public class Solution {public int run(TreeNode root) {TreeNode node = root;//递归的边界条件 如果当前节点为null 高度为0if(node == null)return 0;//递归的边界条件 如果当前节点是叶子节点...

weixin_33001305的博客 253

leetcode------求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。

public int run (TreeNode root) { // write code here if(root==null){ return 0; }else if(root.left==null && root.right==null){ return 1; }else if(root.left!=null && root.right!=null){...

sunnnnh的博客 286

LeetCode 的 C++ 实现(一) :求给定二叉树的最小深度,最小深度是指树的根节点到最近叶子结点的最短路径上的数量

题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 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...

黄胶鞋和七分裤 620

求给定二叉树的最小深度

题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 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...

qq_45564691的博客 429

【Leetcode】二叉树的最小深度

题目描述: 给定一个二叉树,找出其最小深度。 最小深度是从根节点到最近叶子节点的最短路径上的节点数量。 说明:叶子节点是指没有子节点的节点。 示例: 给定二叉树[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最小深度 2. 解题思路: 这题和【LeetCode】二叉树的最大深度很相似...

麦芽雪冷萃 1134

LeetCode求给定二叉树的最小深度讨论总结

题目描述 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 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 le...

Woosual的博客 685

二叉树的最小深度

二叉树的最小深度 题目描述: 求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 输入: {1,2,3,4,5} 输出: 2 解法: 先判断是否为空树,不是的话,对左右子树分别判断,若左子树为空,就进入右子树并且加一,若右子树为空,,就进入左子树并加一。若左右子树都不为空,对左右子树深度进行判断,输出最小的深度。 /** * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode

tzhope的博客 2562

Leetcode打卡一:求给定二叉树的最小深度

首先要明白递归是实现该算法的最优方式,其实对于该算法有一个比较整体上的认识:要想得到最小深度,那么就可以先获取到左右子树的最小深度,然后加一,那么要想要想获取到左(右)子树的最小深度,那么就还要获取到该子树的左右子树的最小深度再加一,到这里我们就已经形成了一个递归的雏形。 我们设计的这个递归方法,往大来看就是获取根节点左右子树的最小深度(往大来看的深层含义就是最外层递归的最后大的返回值!),往小来...

weixin_44844089的博客 420

Leetcode 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 le...

不一样的烟火 218
上一篇: 已知树的前序,中序遍历,重建二叉树
下一篇: 计算逆波兰式(后缀表达式)的值
inferno devil
博客等级 码龄9年 54粉丝 172原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值