764. N-ary Tree Level Order Traversal
Difficulty: Easy
Topics: Tree, Breadth-first Search
Similar Questions:
Problem:
Given an n-ary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level).
For example, given a 3-ary
tree:
We should return its level order traversal:
[ [1], [3,2,4], [5,6] ]
Note:
- The depth of the tree is at most
1000
. - The total number of nodes is at most
5000
.
Solutions:
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<vector<int>> levelOrder(Node* root) {
if (root == nullptr) return {};
queue<Node*> q;
q.push(root);
vector<vector<int>> ret;
while (!q.empty()) {
int size = q.size();
vector<int> level;
for (int i = 0; i < size; ++i) {
Node* node = q.front(); q.pop();
level.push_back(node->val);
for (auto& child : node->children) {
q.push(child);
}
}
ret.push_back(level);
}
return ret;
}
};