LeetCode Path Sum II

class Solution {
private:
    vector<vector<int> > result;
public:
    vector<vector<int> > pathSum(TreeNode *root, int sum) {
        result.clear();
        vector<int> path;
        dfs(root, path, sum);
        return result;
    }
    
    void dfs(TreeNode *root, vector<int>& path, int sum) {
        if (root == NULL) return;
        if (root->left == NULL && root->right == NULL && root->val == sum) {
            path.push_back(root->val);
            result.push_back(path);
            path.pop_back();
            return;
        }
        path.push_back(root->val);
        dfs(root->left, path, sum - root->val);
        dfs(root->right, path, sum - root->val);
        path.pop_back();
    }
};

水一发

原文地址:https://www.cnblogs.com/lailailai/p/3684056.html