Introduction
Question:113. 路径总和 II
Analysis
比较简单的题目,直接遍历并维护一个vec存储当前路径上的所有元素以及其和即可。
Implement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| vector<vector<int>> pathSum(TreeNode* root, int targetSum) { vector<vector<int>> res; if (root == nullptr) return res; vector<int> vec; pathSum(res, vec, root, targetSum); return res; } void pathSum(vector<vector<int>> &res, vector<int> &vec, TreeNode *root, int targetSum) { vec.push_back(root->val); if (root->left == nullptr && root->right == nullptr && root->val == targetSum) { res.push_back(vec); } if (root->left) { pathSum(res, vec, root->left, targetSum - root->val); } if (root->right) { pathSum(res, vec, root->right, targetSum - root->val); } vec.pop_back(); }
|