程式語言 - LeetCode - C++ - 590. N-ary Tree Postorder Traversal



題目:


解答:

/*
// 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<int> postorder(Node* root) {
        vector<int> ans;

        auto dfs = [&](this auto&& dfs, Node* n) -> void {
            if (!n) {
                return;
            }

            for (Node* c : n->children) {
                dfs(c);
            }

            ans.push_back(n->val);
        };

        dfs(root);

        return ans;
    }
};