LeetCode 113. 路径总和 II

原题目:https://leetcode-cn.com/problems/path-sum-ii/

 

思路:

用数组记录做过的路径,最后判断和如果等于sum,就把数组放在结果数组之中。

 

代码:

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

 

你可能感兴趣的:(LeetCode)