刷题

简介: ## 一、题目描述:给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

一、题目描述:

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

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

示例 1:

img

输入:root = [1,null,3,2,4,null,5,6]
输出:[[1],[3,2,4],[5,6]]
示例 2:

img

输入: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] 之间

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

二、思路分析:

 N叉树的层序遍历和二叉树的层序遍历逻辑相同,代码略有不同。N叉树的层序遍历本质上就是 BFS 算法。
  将二叉树的层序遍历和N叉树的层序遍历做比较:

N叉树使用 for 循环将该节点的子节点加入到队列中。二叉树只有左右两个子节点,就可能存在左右子节点非空的情况,二叉树中需要进行判断。而N叉树中, children 字段中装的就是非空的子节点,不需要进行子节点的非空判断。

三、AC 代码:

class Solution {
    public List<List<Integer>> levelOrder(Node root) {
        List<List<Integer>> res = new LinkedList<>();
        if (root == null) {
            return res;
        }

        Queue<Node> q = new LinkedList<>();
        q.offer(root);

        while (!q.isEmpty()) {
            int sz = q.size();
            List<Integer> level = new LinkedList<>();
            for (int i = 0; i < sz; i++) {
                Node cur = q.poll();
                level.add(cur.val);
                // 将 cur 的子节点加入队列
                for (Node child : cur.children) {
                    q.offer(child);
                }
            }
            res.add(level);
        }
        return res;
    }
}
相关文章
|
存储 算法 生物认证
活体检测的几种手段分析
活体检测的手段比较多,目前比较通用的是人脸活体检测,但是实际应用中的还有指纹识别、虹膜识别、静脉识别,通过这些手段来增加安全性,活体检测在金融领域、军事管理中最先使用,目前也在渐渐的普及到各个民用行业。
889 0
活体检测的几种手段分析
|
11月前
|
人工智能 Java 程序员
一文彻底搞清楚电路中的焊接技术
最早的电路连接依赖导线、螺丝和螺母,如1920年代收音机内部构造所示。这种技术虽简单,但存在可靠性低、设备体积大、难以自动化等缺点。随着锡焊技术的出现,电子元件连接变得更加稳固,点对点构造随之普及。然而,这种方式仍面临维护难、标准化不足的问题。最终,电路板的引入使电路布局更加整洁,大大提高了可维护性和生产效率。 &gt; 动手实践,买个电烙铁试试吧!
235 0
|
设计模式 缓存 前端开发
React中样式解决方案有哪些?
本文首发于微信公众号“前端徐徐”,探讨了React开发中的样式管理方法,包括内联样式、常规CSS、CSS-Module、CSS-in-JS及使用CSS框架等五种常见方案,分析了各自的优缺点,帮助开发者根据项目需求选择合适的样式解决方案。
424 0
|
SQL 关系型数据库 MySQL
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
1830 0
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
|
算法 机器学习/深度学习
算法导论------渐近记号Θ、Ο、o、Ω、ω详解
目录: 1.渐近精确界记号:Θ(big-theta) 2.渐近上界记号 :O(big-oh) 3.渐近下界记号 :Ω(big-omege) 4.非渐近紧确上界:o(小-oh) 5.非渐近紧确下界:ω(小-omege) 6.
7678 0
|
云安全 弹性计算 安全
问卷星CEO伍勇——不忘初心 方得始终
说到做问卷,你首先会想到谁?杭州早高峰街头,我们随机拦下100名行人,向他们询问同一个问题:“如果有一个调研活动需要做问卷,你会选择什么工具?”得到的60多个回答中,都指向同一个答案——问卷星。对于很多人来说,“问卷星”可能就是做问卷的代名词了。那么,究竟谁是“问卷星”?这是一家怎样的公司?
1016 0
问卷星CEO伍勇——不忘初心 方得始终
|
存储 安全 算法
码出高效:Java开发手册-第1章(1)
本书源于影响了全球250万名开发工程师的《阿里巴巴Java开发手册》,作者静心沉淀,对Java规约的来龙去脉进行了全面而彻底的内容梳理。本书以实战为中心,以新颖的角度全面阐述面向对象理论,逐步深入地探索怎样成为一位优秀开发工程师。比如:如何驾轻就熟地使用各类集合框架;如何得心应手地处理高并发多线程问题;如何顺其自然地写出可读性强、可维护性好的优雅代码。 本书旁征博引、文风轻松,秉持“图胜于表,表胜于言”的理念,深入浅出地将计算机基础、面向对象思想、JVM探源、数据结构与集合、并发与多线程、单元测试等知识客观、立体地呈现出来。紧扣学以致用......
码出高效:Java开发手册-第1章(1)
|
SQL Oracle 关系型数据库
MySQL - 查询数据库里所有表名和字段名
MySQL - 查询数据库里所有表名和字段名
963 0
|
安全 芯片
ISO7816 接口调试与使用
ISO7816 是一种标准化的接触式的智能卡通信协议,用于读写接触式智能卡,例如PSAM、SAM、手机的SIM卡等皆符合该协议标准。ISO7816是一种半双工串行通信接口,由VCC, RESET, CLK, IO, VPP(保留接口,不使用)组成。本文以平头哥芯片的ISO7816接口为样例,介绍ISO7816的基础知识(主要包扩iso7816-3, iso7816-4),以及如何快速上手开发调试。
1568 0
ISO7816 接口调试与使用
|
安全
深度揭秘:伪基站到底是怎么回事?
伪基站就是假基站,是伪装成运营商合法基站的非法通信设备。它利用通信网络的一些技术漏洞,劫持正常用户的手机通讯,骗取用户信息,强行发送广告、诈骗等信息,以此达到非法目的。
4526 0