/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode() : val(0), left(nullptr), right(nullptr) {} * TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} * TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {} * }; */ class Solution { public: vector<vector<int>> v; void solve(TreeNode* root, vector<int> &ans, int curr, int targetSum) { if(!root) return; curr+=root->val; ans.push_back(root->val); if(curr==targetSum && !root->left && !root->right) v.push_back(ans); if(root->left) solve(root->left, ans, curr, targetSum); if(root->right) solve(root->right, ans, curr, targetSum); ans.pop_back(); } vector<vector<int>> pathSum(TreeNode* root, int targetSum) { vector<int> ans; solve(root, ans, 0, targetSum); return v; } };
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter