鱼C论坛

 找回密码
 立即注册
查看: 1175|回复: 0

[技术交流] C++刷leetcode(429. N叉树的层序遍历)【广度优先搜索】

[复制链接]
发表于 2020-5-29 19:01:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

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

例如,给定一个 3叉树 :

 



 

返回其层序遍历:

[
     [1],
     [3,2,4],
     [5,6]
]
 

说明:

树的深度不会超过 1000。
树的节点总数不会超过 5000。

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

/*
// 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) {
        vector<vector<int> > res;
        if(root == NULL) return res;
        queue<Node*> store;
        store.push(root);
        while(!store.empty()){
            int len = store.size();
            vector<int> temp1;
            for(int i = 0; i < len; i++){
                Node* temp2 = store.front();
                store.pop();
                temp1.push_back(temp2 -> val);
                int len2 = temp2 -> children.size();
                for(int j = 0; j < len2; j++){
                    store.push(temp2 -> children[j]);
                }
            }
            res.push_back(temp1);
        }
        return res;
    }
};

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 17:49

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表