/* // Definition for a Node. class Node { public: int val; vector children; Node() { } Node(int _val) { val = _val; } Node(int _val, vector _children) { val = _val; children = _children; } }; */ class Solution { void levelOrder(vector> &traversal, Node *root, int level) { if (root == nullptr) { return; } if (level >= traversal.size()) { traversal.push_back({}); } traversal[level].push_back(root->val); for (auto child : root->children) { levelOrder(traversal, child, level + 1); } } public: vector> levelOrder(Node *root) { vector> result; levelOrder(result, root, 0); return result; } };