与二叉树的层序遍历区别:二叉树只有两个子树,而N叉树有N个节点,仅此而已。
N叉树的N个子树使用一个vectotr<Node*> children;保存
/*
// 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>> result;
if(!root) {
return result;
}
queue<Node*> que;
que.push(root);
while(!que.empty()) {
vector<int> vec;
int n = que.size();
for(int i = 0; i < n; i++) {
Node* node = que.front();
que.pop();
vec.push_back(node->val);
for(auto node : node->children) {
que.push(node);
}
}
result.push_back(vec);
}
return result;
}
};