二叉树广度优先搜索(BFS)- Java

力扣树专题-6 广度优先搜索 刷熟一个模板(层序遍历打印二叉树)秒杀一堆问题leetcode102 111 116 617 java刷题笔记 广度优先搜索算法BFS专题 根据一个模板 秒杀其他题目 阅读详情
/**
 * 广度优先搜索
 */
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 +
                '}';
    }
}

遍历二叉树的深度优先搜索(DFS)和广度优先搜索(BFS)的Java编程实现 深度优先搜索是一种先根遍历的算法,它从根节点开始,递归地访问每个节点的左子树和右子树。以上代码实现了二叉树的深度优先搜索和广度优先搜索算法。使用这两种算法可以遍历二叉树并访问每个节点。广度优先搜索是一种按层遍历的算法,它从根节点开始,逐层地访问每个节点。深度优先搜索和广度优先搜索是常用的二叉树遍历算法。本文将介绍如何使用Java编程语言实现这两种遍历算法。函数,并传入二叉树的根节点来执行相应的遍历算法。希望本文对你理解和实现二叉树遍历算法有所帮助! 阅读详情

相关推荐

华为OD机试 - 获取二叉树第k层的数值 - 广度优先搜索 BFS(Java 新系统 200分)

华为OD机试 新系统 题库疯狂收录中,刷题。

学Java,找哪吒 210

java中的二叉树,图和树的深度和广度搜索

java中的二叉树,创建遍历,图的深度广度优先搜索

RRLOVEXX20210818的博客 1354

用Java实现二叉树的深度优先、广度优先遍历

NULL 博文链接:https://redhacker.iteye.com/blog/413606

二叉树广度优先搜索(BFS)算法 Java

​​Java二叉树广度优先搜索(BFS)算法

qq_59836005的博客 981

Ubuntu20.04系统Cuckoo sandbox所需环境搭建及安装(超详细图文)

请勿叫我大神,我只是互联网的搬运工~ 前言 本教程以Ubuntu20桌面版作为示范,服务器版同样适用,但可能稍微麻烦一点,服务器版本的话安装Xmanage套装使用可能会相对轻松一些,由于后面会使用到vbox的使用,对vbox命令行操作不熟悉的小伙伴用xmanage可能会相对轻松一点。 提示:以下是本篇文章正文内容,下面案例可供参考 安装ubuntu20桌面版 步骤1:转到https://ubuntu.com/download/desktop下载下载.iso。 步骤2:使用您选择的虚拟机监控程序(VMWa

ElsonHY的博客 1万+

英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战:从安全手册到代码集成的避坑指南

本文深入探讨英飞凌AURIX™ TC3xx系列MCU的ISO 26262安全机制实战应用,重点解析锁步核配置、ECC策略优化及SafeTlib库集成中的关键问题。通过代码示例和配置建议,帮助开发者实现ASIL D级别安全性,规避常见陷阱,提升汽车电子系统的功能安全合规性。

weixin_42558093的博客 403

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 {

qq_54494937的博客 315

c++界面开发入门

c++界面开发 DialogBox MessageBox

jiaodou2的博客 6514

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

飘 194

奈曼-皮尔逊准则

奈曼-皮尔逊准则 如果各个假设的先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(i=0,1)已知,并且每种判决的代价函数已知,这时,可以用贝叶斯准则进行判决。 如果进一步假设正确判决不付出的代价,而错误判决代价相同,即c00=c11=0,c01=c10=1c_{00}=c_{11}=0,c_{01}=c_{10}=1c00​=c11​=0,c01​=c10​=1,这时可以用最小平均错误概率准则进行判决。 在不知道先验概率P(Hi)(i=0,1)P(H_i)(i=0,1)P(Hi​)(

little_soldier的专栏 1万+

OpenAI Error: 403 Country, region, or territory not supported [Python]

从OpenAI的API服务中获取数据时,由于你所在的国家、地区或领土不被支持,因此请求被拒绝了

suiusoar 5659

二叉树的广度优先搜索(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

代码之美 833

高通Camx功能feature分析之二:remosaic流程

本文介绍了Remosaic技术及其在图像处理中的应用。Remosaic是将4cell1像素排布还原为普通Bayer结构的过程,分为硬件和软件两种实现方式。文章详细解析了Remosaic流程,包括配流情况、Feature选择、初始化过程,以及触发拍照的完整流程。重点分析了从普通预览切换到全尺寸拍照的关键步骤:激活全尺寸RDI会话、生成请求、等待就绪、唤醒离线线程和重启预览。通过代码层面的分析,揭示了Remosaic技术如何实现高分辨率图像还原,同时说明了该过程中可能出现的预览定屏现象及其原因。

1875

2026年--Lc340-1161. 最大层内元素和(二叉树 , 广度优先搜索bfs)--java版

按层遍历的逻辑是:只要当前层还有节点,就继续循环;当 q 为空,说明没有下一层了,遍历结束。遍历当前层的节点有左孩子,左孩子入队;遍历当前层的节点有右孩子,右孩子入队。只是让 tmp 引用当前的 q(当前层)。随后把 q 换成新的空列表,用来装下一层节点。q.isEmpty() 表示:q 这个列表为空(没有节点了)。q.isEmpty() 表示:q 不为空,还有节点要处理。遍历结束后,用 maxSum 更新最大层和,并进入下一层。用bfs来遍历每一层的节点,然后对每一层的节点求和。遍历 tmp(当前层)

zsysingapore的博客 205

C#实战YOLO26物体检测:从ONNX模型转换到工业级部署全复盘

本文介绍了在C#上位机中集成YOLO26模型实现工业产线零件检测的实战方案。针对工业场景对实时性(单帧推理≤100ms)、轻量化和易部署的需求,选择YOLO26模型相比YOLOv8在推理速度提升30%且模型体积更小。文章详细拆解了从模型转换(PyTorch转ONNX)、C#推理引擎封装到部署优化的全流程,重点解决了ONNX兼容性、坐标偏移、GPU降级等工业落地中的典型问题。通过解耦设计、性能优化和异常处理机制,最终在工控机(i5-8500+GTX1650)上实现60ms的单帧推理速度,为工业检测项目提供了可

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1325

PCL 八叉树的使用

八叉树(Octree)是一种空间划分的数据结构,广泛应用于三维点云的处理和分析。八叉树通过将空间递归地划分为八个子区域,可以有效地组织和索引三维点数据,提升点云的查询、降采样和配准等操作的效率。

纵马踏花向自由 1658

二叉树BFS(广度优先搜索)

首先定义二叉树节点类TreeNode,包含valleftright/*** 二叉树节点类(通用模板)* @param <T> 节点值的类型(如Integer、String等)*/// 节点值T val;// 左子节点引用// 右子节点引用/*** 无参构造方法(默认值为null)*//*** 带值的构造方法(子节点默认null)* @param val 节点值*//*** 完整构造方法(指定值、左子节点、右子节点)* @param val 节点值。

qq_60309351的博客 1234

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

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 *...

q_Q_wang的博客 529

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

树的广度优先搜索(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的左右孩子,发现为

cloud的博客 2486

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

广度优先搜索(BFS,Breadth-First Search)实现方法

广度优先搜索(BFS,Breadth-First Search)实现方法

weixin_45428910的博客 412

[Java]Java实现二叉树和图的DFS、BFS

Java实现深度优先搜索DFS和广度优先搜索BFS

一杯糖不加咖啡 708

二叉树层级遍历:算法原理、实现与应用场景详解

本文介绍了二叉树层级遍历的原理、实现及应用。层级遍历基于广度优先搜索(BFS),使用队列按从上到下、从左到右的顺序访问节点。文章提供了Python和Java的实现代码,并阐述了其在树可视化、层级节点查找、树算法及图BFS中的应用。掌握这一遍历方法有助于解决算法问题,并为理解更复杂的数据结构奠定基础。

你若盛开,清风自来 1899

二叉树的层序遍历 Java广度优先搜索

一、题目描述 给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 示例: 二叉树:[3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回其层序遍历结果: [ [3], [9,20], [15,7] ] 二、思路讲解 看到二叉树按层来遍历,我们首先想到的就是广度优先搜索bfs。但是此题与单纯的bfs不一样的点在于:题目中要按层分数组来返...

m0_49499183的博客 626

广度优先搜索遍历二叉树

1.前言 当我们在需要遍历一颗二叉树时,我们可以使用广度优先搜索算法(BFS)进行实现,广度优先算法会一层一层的遍历二叉树,从根节点向下一层一层的访问,直到没有节点为止。 2. Queue 在Java中,我们一般使用队列(Queue)进行广度优先搜索的实现。 Queue中的主要方法: add()或offer()加入数据 poll()从队列中删除第一个元素 peek()用于在队列的头部查询元素,只得到但不会删除这个元素, isEmpty()判断当前队列是非为空。 3. 实现思路 创建队列后先将根结点入队,

一觉睡过头的菜鸡的博客 634

剑指 Offer 32 - I. 从上到下打印二叉树(Java、BFS)

剑指 Offer 32 - I. 从上到下打印二叉树(Java、BFS)

weixin_45512600的博客 218

蓝桥杯必备:BFS算法原理详解与实战应用(附Java代码实现)

掌握BFS算法不仅有助于蓝桥杯等赛事,更是提升编程能力的关键。随着全球AI竞赛进入白热化阶段 ,算法能力变得更加重要。《DFS算法深度解析》《动态规划解题套路》《蓝桥杯历年真题汇总》🔗 本文代码已通过优快云在线测试,如需获取完整可运行代码,请三连后在评论区留言!📊 读者互动: 你觉得BFS在算法竞赛中最难的部分是?A) 队列实现 B) 边界处理 C) 最短路径证明。

m0_68705118的博客 2156
上一篇: 二叉树深度优先搜索(DFS)- Java
下一篇: JSP中使用EL表达式不生效
hanlin-hl
博客等级 码龄8年 3粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanlin-hl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值