Same with I
1 /** 2 * Definition for binary tree 3 * struct TreeNode { 4 * int val; 5 * TreeNode *left; 6 * TreeNode *right; 7 * TreeNode(int x) : val(x), left(NULL), right(NULL) {} 8 * }; 9 */10 class Solution {11 public:12 void getSum(vector> &result, vector current, TreeNode *root, int sum, int target) {13 if (!root) return;14 sum += root->val;15 current.push_back(root->val);16 if (!root->left && !root->right && sum == target) {17 result.push_back(current);18 return;19 }20 getSum(result, current, root->left, sum, target);21 getSum(result, current, root->right, sum, target);22 }23 vector > pathSum(TreeNode *root, int sum) {24 vector > result;25 getSum(result, vector (), root, 0, sum);26 return result;27 }28 };