题目
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
就是把二叉树变成了N叉,只要在层序遍历的基础上,把当前节点对应转换到下一层节点的代码换一下即可
cpp
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
queue<Node*> que;
vector<vector<int>> result;
if (root != NULL) que.push(root);
while (!que.empty()) {
int size = que.size();
vector<int> vec;
for (int i = 0; i < size; i++) {
Node* cur = que.front();
que.pop();
vec.push_back(cur->val);
for (int j = 0; j < cur->children.size(); j++) {
if (cur->children[j]) que.push(cur->children[j]);
}
}
result.push_back(vec);
}
return result;
}
};