题意:
原题链接
思路:
先加入第一层,然后遍历该层所有元素加入到新的一层中,再把当前层的元素加入到答案中即可。
代码:
/*
// 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;
vector<Node*> vec = {
root};
while(true) {
vector<Node*> son;
for(auto &u : vec) {
if(u == NULL) continue;
for(auto &v : u->children)
son.push_back(v);
}
if(vec.size()) {
vector<int> tmp;
for(auto &u : vec) tmp.push_back(u->val);
res.push_back(tmp);
} else break;
swap(vec, son);
}
return res;
}
};