Path Sum II Posted on 2018-10-08 Descriptionhttps://leetcode.com/problems/path-sum-ii/description/ Solution12345678910111213141516171819202122232425262728293031/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> ret; int curSum = 0; vector<int> curVector; check(curSum, sum, ret, root,curVector); return ret; } void check(int curSum, int sum, vector<vector<int>>& ret, TreeNode* root, vector<int>& curVector) { if (root == NULL) return; curSum += root->val; curVector.push_back(root->val); if (!root->left && !root->right && sum == curSum) ret.push_back(vector<int>(curVector)); check(curSum, sum, ret, root->left, curVector); check(curSum, sum, ret, root->right, curVector); curVector.pop_back(); return; }};