/**
* 广度优先搜索
*/
public class BFDMain {
public static void main(String[] args) {
TreeNode n11 = new TreeNode(11);
TreeNode n10 = new TreeNode(10);
TreeNode n9 = new TreeNode(9);
TreeNode n8 = new TreeNode(8);
TreeNode n7 = new TreeNode(7, n11, null);
TreeNode n6 = new TreeNode(6, n9, n10);
TreeNode n5 = new TreeNode(5);
TreeNode n4 = new TreeNode(4, null, n8);
TreeNode n3 = new TreeNode(3, n6, n7);
TreeNode n2 = new TreeNode(2, n4, n5);
TreeNode n1 = new TreeNode(1, n2, n3);
System.out.println(bfs(n1)); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
}
public static List<Integer> bfs(TreeNode root) {
List<Integer> list = new ArrayList<>();
Queue<TreeNode> queue = new LinkedList<>();
if (root == null) {
return list;
}
queue.offer(root);
while (!queue.isEmpty()) {
TreeNode node = queue.poll();
// 左子树不为空
if (node.left != null) {
queue.offer(node.left);
}
// 右子树不为空
if (node.right != null) {
queue.offer(node.right);
}
list.add(node.val);
}
return list;
}
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val, TreeNode left, TreeNode right) {
this.val = val;
this.left = left;
this.right = right;
}
TreeNode(int val) {
this.val = val;
}
@Override
public String toString() {
return "TreeNode{" +
"val=" + val +
", left=" + left +
", right=" + right +
'}';
}
}
相关推荐
华为OD机试 - 获取二叉树第k层的数值 - 广度优先搜索 BFS(Java 新系统 200分)
华为OD机试 新系统 题库疯狂收录中,刷题。
java中的二叉树,图和树的深度和广度搜索
java中的二叉树,创建遍历,图的深度广度优先搜索
用Java实现二叉树的深度优先、广度优先遍历
NULL 博文链接:https://redhacker.iteye.com/blog/413606
二叉树广度优先搜索(BFS)算法 Java
Java二叉树广度优先搜索(BFS)算法
实战指南!基于STM32的智能环境监测系统(代码+硬件设计+云端控制)
本文详细介绍了基于STM32的智能环境监测系统的设计与实现,包括硬件选型、电路设计、软件架构和云端控制。系统通过DHT11温湿度传感器和MQ-2烟雾传感器实时监测环境数据,STM32F103C8T6主控芯片处理数据并通过ESP8266上传至中国移动物联网平台,支持手机APP远程监控。项目成本低、稳定性高,适合智能家居和环境监测应用。
Multisim电路仿真与实验:包含连续时间系统的模拟、周期信号频谱分析、组合逻辑电路:竞争冒险、数字锁
这些实际系统可以是电的或非电的物理量系统,也可以是经济、军事等非物理量系统。矩形周期信号的幅度和周期保持不变,随着占空比的增加(即脉宽加大),主峰高度越高,主峰宽度越窄,各谱线间隔越窄,主峰包含的谱线数量越少,有效频带宽度越窄,主峰内高次谐波分量越少。输入信号所经路径不同而引起的冒险现象,按短暂尖峰极性的不同,可将冒险分为“0-1-0”型险象(也称“1”型)和“1-0-1”型险象(也称“0”型)理想的正弦波的幅度谱包含1条谱线,证明其只有基频分量,而无谐波分量,如果能测出谐波分量,说明该正弦波已有失真。
java实现二叉树的广度优先搜索
利用队列实现广度优先搜索 如果有如上所示的二叉树 利用队列先进先出的特点 进行如下操作: 1 入队列。 1出队列,然后将1的左子树右子树2,3入队列 此时队列是2,3. 2出队列,然后将2的左子树右子树4,5入队列 此时队列是3,4,5。 3出队列 然后将 3的子树 6 ,7入队列, 此时队列是4,5,6,7。 4出队列 8,9入队列 此时队列是 5 6 7 8 9. 5出队列 10入队列 此时队列是 6 7 8 9 10 依次出队 public class Solution {
【图形学】后处理下的HDR、颜色分级、颜色映射与颜色空间
目录 一、Color Grading 1.1概念 1.2 内置在Unity/UE4 二、HDR、LDR与VDR 2.1 LDR 2.2 HDR 2.3 VDR 三、Tone Mapping 3.1 概念 3.2 算法发展史 3.3 ACES算法 四、常见的颜色空间标准 参考 一、Color Grading 1.1概念 Color Grading(颜色分级、颜色校正)俗称调色,是游戏后期处理中最常见也是必要的一个环节。它能够改变或矫正最终图像的颜色和亮度,你可以把它想象...
LeetCode 226 Invert Binary Tree 层序遍历方法
题目如下: 直接上代码: package com.example.demo; import java.util.LinkedList; import java.util.Queue; /** * Created By poplar on 2019/10/30 */ public class InvertBinaryTree { public static void m...
运算放大器基础1——用作比较器
运算放大器,运放,在电路设计中非常常见。在图2中,当前状态下,开关切换到0V,“正相输入”和“负相输入”都是接地,运放两个输入端电压相同。最后,调节可变电阻,使其两端电压大于3.37V,比如3.43V,作为运放正相输入,由于电压大于反相输入,LED点亮(运放输出为5V)。其次,调节可变电阻,使其两端电压小于3.37V,比如2.09V,作为运放正相输入,由于电压小于反相输入,LED不点亮。好,现在我们将0.1V电源换个方向,这样实际“正相输入”的是-0.1V,比“负相输入”的电压要低,看看输出是什么?
ThinkBook 16 2024 Ubuntu驱动全攻略:从无线网卡到触控板
本文详细介绍了ThinkBook 16 2024在Ubuntu系统下的驱动问题解决方案,涵盖无线网卡、蓝牙、显卡和触控板等关键硬件的驱动修复步骤。通过具体命令和配置指南,帮助用户快速解决兼容性问题,提升Ubuntu在ThinkBook上的使用体验。
二叉树的广度优先搜索(BFS)和深度优先搜索(DFS)代码实现(Java)
本文的代码和图表来源于力扣(LeetCode) 作者:sdwwld 链接:https://leetcode-cn.com/problems/er-cha-shu-de-jing-xiang-lcof/solution/4chong-jie-jue-fang-shi-bfsdfszhong-xu-bian-li-di-/ 1 二叉树的广度优先搜索(BFS) 代码实现: public static void treeBFS(TreeNode root) { //如果为空直接返回 i
在 SAP HANA 里为视图创建 Analytic Privilege,真正把同一份数据按角色切开
摘要:本文介绍了SAP HANA中基于业务角色的动态数据权限控制方法。通过Analytic Privilege技术,可以在同一视图上为不同角色设置不同的数据访问范围,实现行级安全控制。核心机制包括:1) 创建带有STRUCTURED PRIVILEGE CHECK的视图;2) 建立授权对象和用户映射表;3) 开发条件提供过程动态生成过滤条件;4) 创建结构化权限对象绑定条件提供器。这种设计使权限规则与业务数据解耦,便于维护变更,适合销售区域、财务数据等多角色访问控制场景。
2026年--Lc340-1161. 最大层内元素和(二叉树 , 广度优先搜索bfs)--java版
按层遍历的逻辑是:只要当前层还有节点,就继续循环;当 q 为空,说明没有下一层了,遍历结束。遍历当前层的节点有左孩子,左孩子入队;遍历当前层的节点有右孩子,右孩子入队。只是让 tmp 引用当前的 q(当前层)。随后把 q 换成新的空列表,用来装下一层节点。q.isEmpty() 表示:q 这个列表为空(没有节点了)。q.isEmpty() 表示:q 不为空,还有节点要处理。遍历结束后,用 maxSum 更新最大层和,并进入下一层。用bfs来遍历每一层的节点,然后对每一层的节点求和。遍历 tmp(当前层)
SAP NetWeaver Business Client (NWBC) 的深入解析
SAP NetWeaver Business Client(NWBC)作为 SAP 提供的一种用户界面,旨在为终端用户提供无缝集成传统 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序的体验。SAP NetWeaver Business Client(NWBC)是 SAP 推出的用户界面,旨在为终端用户提供单一入口,集成传统的 SAP GUI 事务和新开发的基于 Web Dynpro ABAP 的应用程序。在实际业务场景中,NWBC 的应用提升了用户的工作效率和体验。
车牌识别系统
随这图形图像技术的发展,现在的车牌识别技术准确率越来越高,识别速度越来越快。无论何种形式的车牌识别系统,它们都是由触发、图像采集、图像识别模块、辅助光源和通信模块组成的。车牌识别系统涉及光学、电器、电子控制、数字图像处理、计算视觉、人工智能等多项技术。触发模块负责在车辆到达合适位置时,给出触发信号,控制抓拍。辅助光源提供辅助照明,保证系统在不同的光照条件下都能拍摄到高质量的图像。图像预处理程序对抓拍的图像进行处理,去除噪声,并进行参数调整。然后通过车牌定位、字符识别,最后将识别结果输出。 牌照自动识别是一
二叉树BFS(广度优先搜索)
首先定义二叉树节点类TreeNode,包含valleftright/*** 二叉树节点类(通用模板)* @param <T> 节点值的类型(如Integer、String等)*/// 节点值T val;// 左子节点引用// 右子节点引用/*** 无参构造方法(默认值为null)*//*** 带值的构造方法(子节点默认null)* @param val 节点值*//*** 完整构造方法(指定值、左子节点、右子节点)* @param val 节点值。
文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况
主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。
java实现广度优先搜索(BFS)深度优先搜索(DFS)
如何用java实现对二叉树的DFS和BFS? 首先,一个简单二叉树如下图: 每一个结点的数据域为整型,有左节点和右节点 实现如下 import java.util.LinkedList; import java.util.Queue; import java.util.Stack; /** * @author WangMingMing * @creat 2020-04-10 7:58 *...
温度PID控制PLC程序
温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值
jdk-8u144-linux-x64.tar.gz.
该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包
树的广度优先搜索(BFS)及其JAVA实现
树的广度优先搜索BFS 1. 基本思想 思路:输出与当前节点直接相连的节点,直至将与之相连的节点全部输出完,则进入下一层,直至全部节点都被遍历一遍。 如图所示有一颗二叉树,根节点为A。输出其广度优先搜索的值。 第一步:将A输出,此时输出为A; 第二步:将A的左孩子输出,此时输出为A B;再将A的右孩子输出,此时输出为A BC; 第三步:此时输出为A BC,而A已经输出了,那么便输出B的左右孩子,此时输出为A BC DE;再输出C的左右孩子,此时输出为A BC DEFG。 第四步:再输出D的左右孩子,发现为
复分析 阿尔福斯(Ahlfors) 第三版答案 英文
答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案
广度优先搜索(BFS,Breadth-First Search)实现方法
广度优先搜索(BFS,Breadth-First Search)实现方法
[Java]Java实现二叉树和图的DFS、BFS
Java实现深度优先搜索DFS和广度优先搜索BFS
二叉树层级遍历:算法原理、实现与应用场景详解
本文介绍了二叉树层级遍历的原理、实现及应用。层级遍历基于广度优先搜索(BFS),使用队列按从上到下、从左到右的顺序访问节点。文章提供了Python和Java的实现代码,并阐述了其在树可视化、层级节点查找、树算法及图BFS中的应用。掌握这一遍历方法有助于解决算法问题,并为理解更复杂的数据结构奠定基础。
二叉树的层序遍历 Java广度优先搜索
一、题目描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [15,7] ] 二、思路讲解 看到二叉树按层来遍历,我们首先想到的就是广度优先搜索bfs。但是此题与单纯的bfs不一样的点在于:题目中要按层分数组来返...
广度优先搜索遍历二叉树
1.前言 当我们在需要遍历一颗二叉树时,我们可以使用广度优先搜索算法(BFS)进行实现,广度优先算法会一层一层的遍历二叉树,从根节点向下一层一层的访问,直到没有节点为止。 2. Queue 在Java中,我们一般使用队列(Queue)进行广度优先搜索的实现。 Queue中的主要方法: add()或offer()加入数据 poll()从队列中删除第一个元素 peek()用于在队列的头部查询元素,只得到但不会删除这个元素, isEmpty()判断当前队列是非为空。 3. 实现思路 创建队列后先将根结点入队,
剑指 Offer 32 - I. 从上到下打印二叉树(Java、BFS)
剑指 Offer 32 - I. 从上到下打印二叉树(Java、BFS)
蓝桥杯必备:BFS算法原理详解与实战应用(附Java代码实现)
掌握BFS算法不仅有助于蓝桥杯等赛事,更是提升编程能力的关键。随着全球AI竞赛进入白热化阶段 ,算法能力变得更加重要。《DFS算法深度解析》《动态规划解题套路》《蓝桥杯历年真题汇总》🔗 本文代码已通过优快云在线测试,如需获取完整可运行代码,请三连后在评论区留言!📊 读者互动: 你觉得BFS在算法竞赛中最难的部分是?A) 队列实现 B) 边界处理 C) 最短路径证明。
210



被折叠的 条评论
为什么被折叠?



