[Leetcode] Path Sum II
2014-10-22 10:54
405 查看
题目:
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:
Given the below binary tree and
return
思路:类似path sum I,DFS,加一个vector记录经过的node,注意这里不可以剪枝。
总结:复杂度为O(2^n).
Given a binary tree and a sum, find all root-to-leaf paths where each path's sum equals the given sum.
For example:
Given the below binary tree and
sum = 22,
5 / \ 4 8 / / \ 11 13 4 / \ / \ 7 2 5 1
return
[ [5,4,11,2], [5,8,4,5] ]
思路:类似path sum I,DFS,加一个vector记录经过的node,注意这里不可以剪枝。
class Solution { public: int trace_sum; vector<int> trace; void path_sum_helper(TreeNode* root, int sum, vector<vector<int>>& result) { if (root == nullptr) return; trace_sum += root->val; trace.push_back(root->val); if (root->left == nullptr && root->right == nullptr) { if (trace_sum == sum) { result.push_back(trace); } trace_sum -= root->val; trace.pop_back(); return; } path_sum_helper(root->left, sum, result); path_sum_helper(root->right, sum, result); trace_sum -= root->val; trace.pop_back(); } vector<vector<int> > pathSum(TreeNode *root, int sum) { vector<vector<int>> result; path_sum_helper(root, sum, result); return result; } };
总结:复杂度为O(2^n).
相关文章推荐
- LeetCode-113. Path Sum II
- LeetCode之“树”:Path Sum && Path Sum II
- LeetCode Path Sum II
- [leetcode] 113. Path Sum II 解题报告
- leetcode || 113、Path Sum II
- 【leetCode】Path Sum II python实现
- LeetCode刷题笔录Path Sum II
- LeetCode - Path Sum II
- [LeetCode] Path Sum II
- LeetCode-Path Sum II
- LeetCode题解——Path Sum II
- LeetCode Path Sum II
- LeetCode | Path Sum II(路径和2)
- leetcode第一刷_Path Sum II
- LeetCode113. Path Sum II
- [leetcode]113. Path Sum II -- JavaScript 代码
- Leetcode 113. Path Sum II
- leetcode 113. Path Sum II-路径和|回溯算法
- LeetCode:Path Sum II
- [LeetCode] Path Sum II