113-Path Sum II
2017-12-18 21:49
302 查看
类别:DFS
难度:medium
难度:medium
题目描述
算法分析
与112的算法基本一样,但是要注意在实现的过程中对于左子树和右子树path分别进行复制,因为if是先后进行的,第一个if判断后会在第二个if中使用path,而此时path已经发生改变代码实现
class Solution { public: void findPath(vector<vector<int>>& result, vector<int> path, TreeNode* root, int& sum) { if (root->left == NULL && root->right == NULL) { int n = path.size(); int count = 0; for (int i = 0; i < n; ++i) { count += path[i]; } if (count == sum) { result.push_back(path); } } // notice here copy the path, because after judge root->left, it still use path to judge root->right vector<int> leftPath = path; vector<int> rightPath = path; if (root->left != NULL) { leftPath.push_back(root->left->val); findPath(result, leftPath, root->left, sum); } if (root->right != NULL) { rightPath.push_back(root->right->val); findPath(result, rightPath, root->right, sum); } } vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int>> result; if (root == NULL) return result; vector<int> path; path.push_back(root->val); findPath(result, path, root, sum); } };
相关文章推荐
- LeetCode: Path Sum II [113]
- 113. Path Sum II
- Leetcode[113]-Path Sum II
- LeetCode题解-113-Path Sum II
- leetcode 113 Path Sum II
- [leedcode 113] Path Sum II
- 113. Path Sum II
- LeetCode_113 Path Sum II
- leetcode[113]Path Sum II
- 113. Path Sum II
- LeetCode 113: Path Sum II
- 113:Path Sum II【树】【DFS】
- leetcode_question_113 Path Sum II
- LeetCode 113:Path Sum II
- Leetcode[113]-Path Sum II
- [leetcode 113] Path Sum II
- 113. Path Sum II
- 113. Path Sum II
- LeetCode113 Path Sum II
- leetcode 113 Path Sum II