/* // 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 preorder(vector &traversal, Node *root) { if (root == nullptr) { return; } traversal.push_back(root->val); for (auto child : root->children) { preorder(traversal, child); } } public: vector preorder(Node *root) { vector result; preorder(result, root); return result; } };