【LeetCode: 429. N 叉树的层序遍历 + BFS】

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述

在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ BFS
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 429. N 叉树的层序遍历

⛲ 题目描述

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

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

输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
示例 2:
在这里插入图片描述

输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]

提示:

树的高度不会超过 1000
树的节点总数在 [0, 10^4] 之间

🌟 求解思路&实现代码&运行结果


⚡ BFS

🥦 求解思路
  1. 该题目是通过BFS来遍历二叉树的变种题目,该题的改变之处在于,该题目是N叉树,所以,我们在BFS遍历过程中,对于其中的每个节点,我们需要判断它所有的孩子节点,将其加入对应的队列中,进行后续的BFS遍历过程。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下。
🥦 实现代码
/*
// Definition for a Node.
class Node {public int val;public List<Node> children;public Node() {}public Node(int _val) {val = _val;}public Node(int _val, List<Node> _children) {val = _val;children = _children;}
};
*/class Solution {public List<List<Integer>> levelOrder(Node root) {List<List<Integer>> res = new ArrayList<>();if (root == null)return res;Queue<Node> queue = new LinkedList<>();queue.add(root);while (!queue.isEmpty()) {int size = queue.size();List<Integer> list = new ArrayList<>();for (int i = 0; i < size; i++) {Node temp = queue.poll();list.add(temp.val);if (temp != null) {for (Node node : temp.children) {queue.add(node);}}}res.add(list);}return res;}
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/687291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Landsat8_C2_SR数据集是经大气校正后的地表反射率数据

数据名称&#xff1a; Landsat8_C2_SR 数据来源&#xff1a; USGS 时空范围&#xff1a; 2020年1月-2023年3月 空间范围&#xff1a; 全国 数据简介&#xff1a; Landsat8_C2_SR数据集是经大气校正后的地表反射率数据&#xff0c;属于Collection2的二级数据产品&#…

Java学习笔记2024/2/17

面向对象综合练习--课程讲解&#xff0c;主理解 练习一&#xff1a;文字版格斗游戏 需求: 格斗游戏&#xff0c;每个游戏角色的姓名&#xff0c;血量&#xff0c;都不相同&#xff0c;在选定人物的时候&#xff08;new对象的时候&#xff09;&#xff0c;这些信息就应该被确…

react反向代理

http-proxy-middleware 使用npm安装 npm i -D http-proxy-middleware 文档 点击查看 关键代码 const { createProxyMiddleware } require(http-proxy-middleware);module.exports function(app) {app.use(/api, // api开头的地址的请求createProxyMiddleware({target: ht…

springboot196高校教师科研管理系统

Spring Boot高校教师科研管理系统设计与实现 摘 要 社会发展日新月异&#xff0c;用计算机应用实现数据管理功能已经算是很完善的了&#xff0c;但是随着移动互联网的到来&#xff0c;处理信息不再受制于地理位置的限制&#xff0c;处理信息及时高效&#xff0c;备受人们的喜…

Linux mcopy命令教程:在Linux和MS-DOS之间复制文件(附实例详解和注意事项)

Linux mcopy命令介绍 mcopy是mtools工具包的一部分&#xff0c;它用于在Linux和MS-DOS格式的分区之间复制文件。mcopy可以复制单个文件到指定的文件名&#xff0c;或者复制多个文件到指定的目录中。 Linux mcopy命令适用的Linux版本 mcopy命令在大多数Linux发行版中都可以使…

javascript中的行为委托设计模式【详解】

文章目录 深入探讨 JavaScript 行为委托设计模式什么是行为委托&#xff1f;为何选择行为委托&#xff1f;如何使用行为委托&#xff1f;行为委托的实际应用行为委托的原理行为委托的优点实践应用 深入探讨 JavaScript 行为委托设计模式 JavaScript 是一门灵活且强大的语言&am…

casbin 权限管理库介绍 (规范实现 acl, rbac,abac)等

Casbin介绍 日常开发中我们经常需要设计用户对资源的访问权限控制。我发现手动设计模型、数据库表定义很不规范&#xff0c; 所以进行了一些调研。我发现casbin这个库很大程度上实现了标准化的需求&#xff0c; 牛刀小试引入了公司的一个需求中&#xff0c; 感觉开发效率确实很…

FlashMeeting(基于FFmpeg+openCV)视频语音通讯系统

Web端体验地址&#xff1a;https://download.csdn.net/download/XiBuQiuChong/88805337 客户端下载地址&#xff1a;https://download.csdn.net/download/XiBuQiuChong/88805337 FlashMeeting(基于FFmpegopenCV)是一整套先进的以FFmpegopenCV技术为基础的视频语音通讯系统。利…

ArcGIS学习(八)基于GIS平台的控规编制办法

ArcGIS学习(八)基于GIS平台的控规编制办法 上一任务我们学习了”如何进行图片数据的矢量化?" 这一关我们来学习一个比较简单的案例一一”如何在ArcGIS中录入控规指标,绘制控规图纸?" 首先,先来看看这个案例的分析思路以及导入CAD格式的控规图纸。 接着,来看…

Node.js开发-会话控制

会话控制 1) 介绍2) cookie3) session4) session 和 cookie 的区别5) token 1) 介绍 所谓会话控制就是 对会话进行控制 HTTP 是一种无状态的协议&#xff0c;它没有办法区分多次的请求是否来自于同一个客户端&#xff0c; 无法区分用户 而产品中又大量存在的这样的需求&…

Eclipse - Expressions Add Watch Expression

Eclipse - Expressions & Add Watch Expression References Window -> Show View -> Other… Show View -> Debug -> Expressions -> Open Debug 模式下出现 Expressions 窗口 Debug 模式下&#xff0c;如果需要查看指定变量或者返回函数的值&#xff0c;直…

19.Qt 组合框的实现和应用

目录 前言&#xff1a; 技能&#xff1a; 内容&#xff1a; 1. 界面 2.槽 3.样式表 参考&#xff1a; 前言&#xff1a; 学习QCombox控件的使用 技能&#xff1a; 简单实现组合框效果 内容&#xff1a; 1. 界面 在ui编辑界面找到input widget里面的comboBox&#xff…

源支付V7最新V2.8.6文明版

源支付V7最新V2.8.6文明版 本版不需要授权码 注&#xff1a;开发不易&#xff0c;仅限交流学习使用&#xff0c;如商业使用&#xff0c;请支持正版&#xff01; 轻量化的界面UI,提供更加便捷的操作体验,让您的系统一目了然 推荐支付宝当面付-免CK-商家版&#xff0c;微信推荐…

Python实用代码之:如何找两个数的最大公因数?

文章目录 前言1.简单版2.函数封装版 前言 大家好&#xff0c;我是BoBo仔吖&#xff0c;欢迎来看我的文章&#xff01;这节课&#xff0c;我教大家如何用两种方法输出最大公因数——简单版以及函数版 1.简单版 a int(input(Enter a number:)) b int(input(Enter a number:)…

利用python解决猴子吃桃问题

1 问题 如何运用python程序解决有趣的猴子吃桃数学问题 问题&#xff1a;猴子第一天摘下若干个桃子&#xff0c;当即吃了一半&#xff0c;还不过瘾&#xff0c;又多吃了一个第二天早上又将剩下的桃子吃掉一半&#xff0c;又多吃了一个。以后每天早上都吃了前一天剩下的一半零一…

书生浦语-模型微调

大语言模型微调 指令微调的流程 LoRA(旁路分支微调) Xtuner微调框架 微调训练 作业 微调作业需要多训练几个epoch&#xff0c;这里训练了16个epoch

Google Gemini 1.5:引领跨模态AIGC信息分析理解与视频内容推理的新篇章,与 Open AI 决一高下!

Gemini 1.5具有100万token的上下文理解能力&#xff0c;是目前最强&#xff01;具有跨模态理解和推理&#xff1a;能够对文本、代码、图像、音频和视频进行高度复杂的理解和推理。允许分析1小时视频、11小时音频、超过30,000行代码或超过700,000字的文本。不过谷歌这个Gemini 1…

力扣热题100_滑动窗口_438_找到字符串中所有字母异位词

文章目录 题目链接解题思路解题代码 题目链接 438. 找到字符串中所有字母异位词 给定两个字符串 s 和 p&#xff0c;找到 s 中所有 p 的 异位词 的子串&#xff0c;返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串&#xff08;包括相…

Codeforces Round 926 (Div. 2)(A B C)

比赛&#xff1a;Codeforces Round 926 (Div. 2) 目录&#xff1a;A B C A题 题目&#xff1a;Sasha and the Beautiful Array 标签: 构造&#xff08;constructive algorithms&#xff09;贪心&#xff08;greedy&#xff09;排序&#xff08;sortings&#xff09; 题目大…

Puppeteer 使用实战:如何将自己的 CSDN 专栏文章导出并用于 Hexo 博客(一)

文章目录 效果展示说明利用工具整体思路Puppeteer 使用笔记保持登录状态打开新的页面点击 dialog跳转页面设置页面可见窗口大小寻找元素等待元素出现 整体代码 效果展示 说明 看了看网上很少做这个功能&#xff0c;但是我有这个需求&#xff0c;就抽出时间写了个简单的工具目前…