https://leetcode.com/problems/n-ary-tree-preorder-traversal/

1. Use recursion:

  1. //40 ms 11.1 MB
  2. /*
  3. // Definition for a Node.
  4. class Node {
  5. public:
  6. int val;
  7. vector<Node*> children;
  8. Node() {}
  9. Node(int _val) {
  10. val = _val;
  11. }
  12. Node(int _val, vector<Node*> _children) {
  13. val = _val;
  14. children = _children;
  15. }
  16. };
  17. */
  18. class Solution {
  19. public:
  20. vector<int> preorder(Node* root) {
  21. vector<int> result;
  22. preorder(root, result);
  23. return result;
  24. }
  25. private:
  26. void preorder(Node* root, vector<int>& result) {
  27. if(!root) return;
  28. result.push_back(root->val);
  29. for(auto child: root->children)
  30. preorder(child, result);
  31. }
  32. };