[Tree Breadth First Search] 二叉树的最小深度

Tree-BFS(Breadth-First-Search) BFS-Breadth First Search-广度优先搜索 广度优先搜索(Breadth First Search)又叫宽度优先搜索或层次优先搜索或横向优先搜索,从根结点开始沿着树的宽度搜索,可以利用队列实现BFS。 Ex:BFS遍历是ABCDEF 我们可以用队列来实现它,队列-先进先出(first in first out),C++有队列的模版库。 Ex: queue q; / 阅读详情

leetcode 111、、Minimum Depth of a Binary Tree、难度easy

0. 题干

// 根结点(root)是树的一个组成部分,也叫树根。所有非空的二叉树中,都有且仅有一个根结点简介。
 //它是同一棵树中除本身外所有结点的祖先,没有父结点。

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

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

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

示例:

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

在这里插入图片描述

返回它的最小深度 2.

1. 代码

class Solution {
public:
	int minDepth(TreeNode* root) {
		queue<TreeNode*>q; //创建队列q
		int level= 0; //level为深度
		if (root)
			q.push(root);
		
		while(q.size()) {
			level++;
			int n = q.size();
			
			for (int i = 0; i< n; i++) {
				TreeNode* cur = q.front();
				q.pop();
				if( !cur->left && !cur->right) //如果根结点的左右孩子都不存在,那么直接深度
					return level;
					
				if(cur->left)
					q.push(cur->left);
				if(cur->right)
					q.push(cur->right);
			}
		}
		
		return level;
	}
};

2. 简叙思路

代码比较简单,稍微说下思路;

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

在这里插入图片描述

先存根节点到队列q里面,其值为3,q.size()为1,然后把存到队列里面的根节点pop掉;

依次存放结点值为9和20的结点,q.size()值为2,然后发现值为9的结点的左右孩子都没有;
此时就找到了最小深度,level返回2。

LeetCode专项练习之树上宽度优先搜索(Tree Breadth-First Search)笔记 本文是根据穷码农的LeetCode刷题建议而进行专项练习时记录的心得。 最近发现自己练习时用的方法不太正确,老是想着自己先完全原创一个方法,实在写不动了才去看解析。这样做虽然有一定效果,但却非常耗时。其中,有一道中等题我前前后后花了6个小时才做完,结果发现自己之前做着做着就开始抠起了细节,完全没去用算法思想来解题,实在是得不偿失。以后,我不会再在一道题上死磕这么久了,在一个番茄钟的时间结束后... 阅读详情

相关推荐

C# C++ 笔记

变量自定义赋值​# 变量取值用$()​​​​​​clean:多个程序员分发同一程序时,由于不能直接在一个程序上进行功能的开发,所以就有了功能分支的概念。二维数组可以理解为是存储指针的一维数组,里面的每一个指针都指向一个一维数组的首地址存储多个一维数组的数据结构。array 是一个二维数组,它有3行和4列,总共可以存储12个整数。

AVICCI的博客 2202

数据结构--图的遍历 BFS

图的遍历 BFS

m0_60593173的博客 1697

RK3568嵌入式Linux多屏显示开发指南

摘要:本篇RK3568嵌入式Linux多屏显示开发指南详细介绍了基于Qt应用层的实现方案。文章首先概述了技术架构,说明从Qt应用到硬件显示的完整流程。然后提供了两种实现方案:推荐使用Qt内置多屏支持方案,包含完整的C++代码示例和配置文件说明;对于需要精细控制的场景,给出了基于libdrm API的底层实现方案。最后重点讨论了屏幕旋转处理和多屏协同工作模式的关键技术要点,包括扩展桌面、镜像模式等实现方法。

froxy的专栏 1573

广度优先搜索 - 宽度优先搜索 - 横向优先搜索 (breadth-first search,BFS)

广度优先搜索 - 宽度优先搜索 - 横向优先搜索 (breadth-first search,BFS) 1. 广度优先搜索 - 宽度优先搜索 - 横向优先搜索 (breadth-first search,BFS) depth-first search,DFS:深度优先搜索 breadth-first search,BFS:广度优先搜索 Breadth-first search (BFS) is ...

程永强 5575

R链式中介:如何一次性生成4个变量所有可能的链式中介结果?(含结果解读与粗略作图)#bruceR#ggplot2

一次性生成4个变量所能生成的24种链式中介并作图

weixin_64183017的博客 3237

Tushare Pro的安装使用——“抱歉,您没有访问该接口的权限,权限的具体详情访问:https://tushare.pro/document/1?doc_id=108”问题

最近做毕设关于量化交易的, 因此一直使用tushare作数据源,但是过程中到一些问题,因此这里写篇文章,供大家一起交流下。 Tushare简介 Tushare是一个免费、开源的python财经数据接口包。拥有如股票、基金、期货等行情数据,公司财务、基金经理等基本面数据,以及债券、外汇、行业、大数据、区块链。Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,因此非常方便...

sinat_40875078的博客 1万+

树上的BFS(Tree Breadth First Search)

Pattern: Tree Breadth First Search,树上的BFS 介绍来自链接:https://www.zhihu.com/question/36738189/answer/908664455 作者:穷码农 ​ 这种模式基于宽度优先搜索(Breadth First Search (BFS)),适用于需要遍历一颗树。借助于队列数据结构,从而能保证树的节点按照他们的层数打印出来。打印完当前层所有元素,才能执行到下一层。所有这种需要遍历树且需要一层一层遍历的问题,都能用这种模式高效解决。 ​

weixin_43989102的博客 1872

基于STM32F4XX 、HAL库的GXHT30C温湿度传感器驱动应用C语言程序设计

define GXHT30C_STATUS_WRITE_CHK (1 << 0) // 写数据校验状态。#define GXHT30C_STATUS_HUMI_TRACK (1 << 11) // 湿度跟踪报警。#define GXHT30C_STATUS_TEMP_TRACK (1 << 10) // 温度跟踪报警。#define GXHT30C_STATUS_CMD_STATUS (1 << 1) // 命令执行状态。

PP_Cottage的博客 227

7. Pattern: Tree Breadth First Search,树上的BFS

这种模式基于宽搜(Breadth First Search (BFS)),适用于需要遍历一颗树。借助于队列数据结构,从而能保证树的节点按照他们的层数打印出来。打印完当前层所有元素,才能执行到下一层。所有这种需要遍历树且需要一层一层遍历的问题,都能用这种模式高效解决。 这种树上的BFS模式是通过把根节点加到队列中,然后不断遍历直到队列为空。每一次循环中,我们都会把队头结点拿出来(remove),然后对其进行必要的操作。在删除每个节点的同时,其孩子节点,都会被加到队列中。 识别树上的BFS模式: 如果你被

一剑曾当百万师 335

华为OD机试真题 新系统2026-04-01 C语言 实现【空间占用计算】

员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。

MISAYAONE的博客 231

【AI理论学习】手把手推导扩散模型:Diffusion Models(DDPM)

生成扩散模型DDPM如下图所示分为前向、逆向两个过程,它首先通过不断往原始清晰数据中添加噪声使其变成标准高斯噪声(前向过程),而后期望从标准高斯噪声中还原原始数据(逆向过程)。若能实现,那便可从已知的标准高斯分布中采样一个噪声数据,而后利用DDPM模型生成符合原始数据分布的新数据。 Diffusion模型包含两个过程:数学符号:y∝xy\propto xy∝x:y正比于x,即y随着x增大而线性增大。 条件概率:贝叶斯公式:p(A∣B)=p(B∣A)×p(A)p(B)p(A|B)=\frac{p(B|A)\

小哲的博客 1512

二叉树层序遍历:BFS核心思想与LeetCode实战解析

广度优先搜索(BFS)是一种基础的图遍历算法,其核心思想是逐层探索节点,确保先访问的节点其邻居也优先被访问。这一原理通过队列(Queue)这一先进先出的数据结构实现,在二叉树场景下即表现为层序遍历。掌握BFS不仅有助于理解树的结构,更是解决图论问题、进行状态空间搜索的关键技术。在算法面试和工程实践中,层序遍历常被用于求解二叉树深度、寻找最短路径、序列化等场景。本文以LeetCode高频面试题为例,深入解析层序遍历的标准实现与常见变体,如锯齿形遍历、寻找每层最大值等,并探讨其与深度优先搜索(DFS)的关联及性

weixin_30394981的博客 348

Python爬虫-爬取汽车之家各品牌周销量榜数据,进行数据分析

本文是该专栏的第57篇,后面会持续分享python爬虫干货知识。本文中,笔者已经整理20篇汽车平台相关的爬虫项目案例。对此感兴趣的同学,可以直接翻阅查看。同样,笔者在本文中将继续以汽车之家平台为例子。基于Python爬虫,实现批量爬取“各品牌周销量榜单”的数据。废话不多说,具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码)

Python进阶专栏《爬虫实战进阶》,《Pyppeteer从入门到精通》原创作者 366

gh_mirrors/dsa2/dsa完全指南:从零开始掌握数据结构与算法的终极路径

gh_mirrors/dsa2/dsa是一个专注于数据结构与算法学习的开源项目,提供了丰富的Python代码示例,帮助学习者快速理解和掌握各类数据结构与算法知识。无论你是编程新手还是有一定基础的开发者,这个项目都能为你提供清晰的学习路径和实用的代码参考。 ## 为什么选择gh_mirrors/dsa2/dsa? 在计算机科学领域,数据结构与算法是构建高效程序的基石。gh_mirrors/dsa

gitblog_00955的博客 481

全覆盖路径规划开源项目Clean-robot-turtlebot3原理及流程概括总结

本系列文章主要介绍全覆盖路径规划开源项目Clean-robot-turtlebot3的相关内容,包含如下四篇文章,分别介绍了开源项目Clean-robot-turtlebot3流程的概括总结、ROS坐标系常用坐标及其变换、Clean-robot-turtlebot3关键函数解析等内容。

慕羽★的博客 6107

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

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

数据结构核心考点与高频陷阱全解析:从线性结构到图论与排序查找

数据结构是计算机科学的基石,它通过特定的逻辑关系组织数据,以提升程序的存储与处理效率。其核心原理在于根据数据特性和操作需求,选择或设计合适的逻辑结构(如线性表、树、图)与物理存储方式,并在此基础上实现高效的算法。掌握数据结构对于优化程序性能、解决复杂工程问题具有关键价值,广泛应用于数据库索引、网络路由、编译器设计及各类算法竞赛与面试场景。本文聚焦于数据结构中的高频考点与易错点,深入剖析数组、链表、栈、队列等线性结构的本质差异与操作代价,对比二叉搜索树、平衡树与堆的特性,详解图的表示方法与遍历策略(DFS/B

ciqiaofu0192的博客 434

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

[Tree Breadth First Search] 二叉树的锯齿形层次遍历

leetcode 103、Binary Tree Zigzag Level Order Traversal,难度medium 0. 题干 给定一个二叉树,返回其节点值的锯齿形层次遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 例如: 给定二叉树 [3,9,20,null,null,15,7] 返回锯齿形层次遍历如下: [ [3], [20,9], [15,7] ] 1. 代码 /** * Definition for a binary tree node. * str

编程菜汝狗 206

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

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

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

Breadth-first Search(广度优先搜索)专题2

743. Network Delay Time 输入:int[][] times times[i]= new int[]{v,u,w} 表示从节点v到节点u需要时间w。注意这里是有向图。    int N 节点总数。    int k 起始节点 输出:从节点k到其他各个节点的最短路径和。如果有一个节点不能达到则返回-1。 分析:从题目描述直观地看到求一个节点到其他各个节点的最短路径和。适...

约定的博客 1603

[Tree Breadth First Search] 二叉树的最大深度

leetcode 104、Maximum Depth of Binary Tree、难度easy 0. 题干 给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 返回它的最大深度 3 。 1. 代码 // 广度优先:使用队列 class Solution { public: int maxDepth(TreeNode* root) {

编程菜汝狗 295

Breadth-first Search(广度优先搜索)专题1

广度优先搜索的定义 广度优先搜索BFS类似于树的层次遍历算法。基本思想是:首先访问顶点v,然后由v出发,依次访问v的各个未被访问过的顶点w1,w2,w3…wn。然后再访问wi(wi是w1,w2,w3…wn中的一个)未被访问过的邻接点。以此类推,直到所有的顶点都被访问过。BFS是一种分层查找的过程,每向前一步就访问一批顶点。不同于深度优先搜索那样有回退的情况。为了实现算法,需要借助于一个辅助队列并且...

约定的博客 809

[Tree Breadth First Search] 二叉树的层序遍历

leetcode 102,Binary Tree Level Order Traversal,难度 medium 树上的BFS,Tree Breadth First Search这个标题更新,二叉树广度优先搜素算法处理的相关题目。 DFS(Deep First Search)深度优先搜索,BFS(Breath First Search)广度优先搜索的区别如下图。 0. 题干 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,nul

编程菜汝狗 472

利用Breadth-First Search (BFS)算法寻找图中的最短路径和所有路径

今天在stackoverflow网站搜索问题时,发现了一个用BFS算法搜索图中最短路径比较简洁且容易理解的代码。暂且放在博客记录下来,方便今后用到。 如上图,我们要使用BFS算法搜索1—11的最短路径,代码如下: # graph is in adjacent list representation graph = { '1': ['2', ...

brightzelool的专栏 1万+

广度优先搜索-Breadth-first search

广度优先搜索(Breadth-first seaech) WIKI Breadth-first search (BFS) is an algorithm for traversing or searching tree or graph data structures. It starts at the tree root (or some arbitrary node of a graph,...

qq_36341799的博客 423

Breadth First Search (BFS)入门

BFS思想: 从初始结点开始,应用算符生成第一层结点,检查目标结点是否在这些后继结点中,若没有,再用产生式规则将所有第一层的结点逐一扩展,得到第二层结点,并逐一检查第二层结点中是否包含目标结点。若没有,再用算符逐一扩展第二层所有结点……,如此依次扩展,直到发现目标结点为止 。 BFS就是对一个点的所有可以走的情况同时访问,一个层次一个层次地访问,所以称为宽度优先搜索(Breadth First

Everything can be done! 1420

[C++基础] 字符串后面添加字符

0. C++ using namespace std; int main(){ string s="abcajdjhs"; string b="abcajdjhs"; char chr_add= 'h'; s=s+chr_add; cout<<s<<endl; cout<<b<<endl; return 0; } cosole输出如下: 真是简单粗暴,直接

编程菜汝狗 1万+

[C++基础] C++数组默认值

1 .作为局部变量. 默认都为0,同时编译器给了好多抱怨,说你没初始化数组; 若是再给第一个赋值为1,其他也还是都为0(这就是废话,反正晓得默认为0了) 作为全局变量 默认都为0,而且没有抱怨. 本文OVER,感谢阅读! ...

编程菜汝狗 4401
上一篇: [Tree Breadth First Search] 二叉树的最大深度
下一篇: [Tree Breadth First Search] N叉树的层序遍历
1byte ≠ 8bit
博客等级 码龄8年 7242粉丝 170原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值