leetcode 429 N叉树的层序遍历

一、题目描述

二、解题思路

整体思路

可以借助队列来完成n叉树的层序遍历,由于需要返回一个二维数组,所以需要在每次处理队列中的节点之前进行计数

具体思路

(1)首先进行变量的初始化,ret用于承接最终的返回值,如果root==nullptr,就返回ret;

(2)将root加入Q,当Q不为空时,进行循环:

<1>首先,统计本层的节点数,size=Q.size(),向量current用于承接当前层的序列;

<2>遍历当前层的节点,将当前节点弹出,并将其子节点加入队列;

<3>遍历完当前层后,将current加入ret;

(3)Q为空后,ret即为所求,返回即可。

三、代码实现

cpp 复制代码
/*
// Definition for a Node.
class Node {
public:
    int val;
    vector<Node*> children;

    Node() {}

    Node(int _val) {
        val = _val;
    }

    Node(int _val, vector<Node*> _children) {
        val = _val;
        children = _children;
    }
};
*/

class Solution {
public:
    vector<vector<int>> levelOrder(Node* root) {
        //队列
        queue<Node*> Q;
        vector<vector<int>> ret;
        if(root==nullptr) return ret;

        Q.push(root);
        while(Q.size()){
            //先求出本层元素的个数
            int size=Q.size();
            vector<int> current;
            for(int i=0;i!=size;i++){
                Node* t=Q.front();
                Q.pop();
                current.push_back(t->val);
                for(Node* child:t->children){
                    if(child!=nullptr) 
                        Q.push(child);
                }
            }
            ret.push_back(current);
        }
        return ret;
    }
};
相关推荐
Mixtral13 分钟前
2026年春招复盘记录工具测评:告别手动整理,AI自动生成求职总结
人工智能·面试·职场和发展·语音转文字·ai语音转文字
一个不知名程序员www4 小时前
算法学习入门 --- 哈希表和unordered_map、unordered_set(C++)
c++·算法
C++ 老炮儿的技术栈5 小时前
在C++ 程序中调用被 C编译器编译后的函数,为什么要加 extern “C”声明?
c语言·c++·windows·git·vscode·visual studio
%xiao Q5 小时前
GESP C++五级-202406
android·开发语言·c++
Sarvartha5 小时前
C++ STL 栈的便捷使用
c++·算法
夏鹏今天学习了吗6 小时前
【LeetCode热题100(92/100)】多数元素
算法·leetcode·职场和发展
Aevget6 小时前
MFC扩展库BCGControlBar Pro v37.2 - 全新的VS 2026可视化管理器
c++·mfc·bcg·界面控件·ui开发
飞Link6 小时前
深度解析 MSER 最大稳定极值区域算法
人工智能·opencv·算法·计算机视觉
bubiyoushang8886 小时前
基于CLEAN算法的杂波抑制Matlab仿真实现
数据结构·算法·matlab
C+-C资深大佬6 小时前
C++类型判断
开发语言·c++