429. N-ary Tree Level Order Traversal
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
.
vector<vector<int>> levelOrder(Node* root) { // time: O(n); space: O(n)
vector<vector<int> > res;
if (!root) return res;
queue<Node*> q({root});
vector<int> cur;
while (!q.empty()) {
int n = q.size();
cur.clear();
for (int i = 0; i < n; ++i) {
Node* t = q.front(); q.pop();
for (Node*& child : t->children) {
if (child) q.push(child);
}
cur.push_back(t->val);
}
res.push_back(cur);
}
return res;
}
Last updated
Was this helpful?