【回溯/二叉树】113. Path Sum II

class Solution {
public:
    vector<vector<int>> pathSum(TreeNode* root, int sum) {
        vector<vector<int>> ans;
        vector<int> temp;
        if(root==NULL)
    		return ans;
        find(ans,temp,root,0,sum);
        return ans;
    }
    void find(vector<vector<int>> &ans,vector<int> temp,TreeNode *root,int sum,int target)
    {
    	temp.push_back(root->val);
    	if(root->left==NULL&&root->right==NULL)
    	{
    		sum += root->val;
    		if(target==sum)
    			ans.push_back(temp);
    		return;
    	}

    	if(root->left)
    	{
    		find(ans,temp,root->left,sum+root->val,target);
    	}
    	if(root->right)
    		find(ans,temp,root->right,sum+root->val,target);

    }
};


猜你喜欢

转载自blog.csdn.net/leetcodecl/article/details/80860678