429. N叉树的层序遍历

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

例如,给定一个 3叉树 :

返回其层序遍历:

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

说明:

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

solution:

 1 /*
 2 // Definition for a Node.
 3 class Node {
 4 public:
 5     int val;
 6     vector<Node*> children;
 7 
 8     Node() {}
 9 
10     Node(int _val, vector<Node*> _children) {
11         val = _val;
12         children = _children;
13     }
14 };
15 */
16 class Solution {
17 public:
18     vector<vector<int>> levelOrder(Node* root) {
19         vector<vector<int> >vec;
20         if(root)
21         {
22           queue<Node*>q;
23           q.push(root);
24           while(!q.empty())
25           {
26             int size = q.size();
27             vector<int> vecChild;
28             while(size--)
29             {
30               Node* node = q.front();
31               q.pop();
32               vecChild.push_back(node->val);
33               for(auto child : node->children)
34                 q.push(child);
35             }
36             vec.push_back(vecChild);
37           } 
38         }
39       return vec;
40     }
41 };
原文地址:https://www.cnblogs.com/Swetchine/p/11307374.html