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

1. Use recursion:

  1. //36 ms 11.2 MB
  2. // Definition for a Node.
  3. /*
  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> postorder(Node* root) {
  21. vector<int> result;
  22. postorder(root, result);
  23. return result;
  24. }
  25. private:
  26. void postorder(Node* root, vector<int>& result) {
  27. if(!root) return;
  28. for(auto child: root->children)
  29. postorder(child, result);
  30. result.push_back(root->val);
  31. }
  32. };