https://leetcode.com/problems/n-ary-tree-level-order-traversal/
1. Use recursion:
//44 ms 11.7 MB/*// 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>> result;preorder(root, result, 1);return result;}private:void preorder(Node* root, vector<vector<int>>& result, int distance) {if(!root) return;//push vector<int> in a vectorwhile(result.size() < distance)result.push_back({});result[distance-1].push_back(root->val);//auto element is a simple way to go around this setfor(auto child: root->children)preorder(child, result, distance + 1);}};
