程式語言 - LeetCode - C++ - 589. N-ary Tree Preorder 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> preorder(Node* root) {
        vector<int> ans;

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

            ans.push_back(n->val);
            for (Node* c : n->children) {
                dfs(c);
            }
        };

        dfs(root);
        return ans;
    }
};