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:

  1. The depth of the tree is at most 1000.

  2. 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?