코테준비 - Path Sum II

정상화·2023년 2월 26일

LeetCode

목록 보기
110/222

Path Sum II

class Solution {
public:
    vector<vector<int>> pathSum(TreeNode *root, int targetSum) {
        if (root == nullptr) {
            return {};
        }
        vector<vector<int>> res;
        vector<int> comb;
        DFS(res, comb, root, targetSum, 0);
        return res;
    }

    void DFS(vector<vector<int>> &res, vector<int> &comb, TreeNode *node, int targetSum, int sum) {
        sum += node->val;
        comb.push_back(node->val);
        if (node->left == nullptr && node->right == nullptr) {
            if (targetSum == sum) {
                res.push_back(comb);    
            }
            comb.pop_back();
            return;
        }
        if (node->left != nullptr) {
            DFS(res, comb, node->left, targetSum, sum);
        }
        if (node->right != nullptr) {
            DFS(res, comb, node->right, targetSum, sum);
        }
        comb.pop_back();
    }
};
profile
백엔드 희망

0개의 댓글