【Leetcode】Path Sum II
2014-05-20 12:31
281 查看
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
View Code
递归解决
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] ]
/** * Definition for binary tree * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right; * TreeNode(int x) : val(x), left(NULL), right(NULL) {} * }; */ class Solution { public: vector<vector<int> > pathSum(TreeNode *root, int sum) { vector<vector<int>> ret; vector<int> path; //这里注意判断空树,否则需要在下面的函数里面判断 if (root != nullptr) { pathSum(root, sum, path, ret); } return ret; } private: void pathSum(TreeNode *node, int target, vector<int> &path, vector<vector<int>> &ret) { path.push_back(node->val); if (node->left != nullptr) { pathSum(node->left, target - node->val, path, ret); } if (node->right != nullptr) { pathSum(node->right, target - node->val, path, ret); } if (node->left == nullptr && node->right == nullptr) { if(node->val == target) { ret.push_back(path); } } path.pop_back(); } };
View Code
递归解决
相关文章推荐
- Leetcode 113. Path Sum II
- Path Sum II - LeetCode
- LeetCode || Path Sum II
- leetcode: Path Sum II
- [LeetCode] Path Sum II
- [LeetCode]Path Sum II
- LeetCode *** 113. Path Sum II
- functionclass[LeetCode]Path Sum II
- Leetcode | Path Sum I && II
- [LeetCode] 113. Path Sum II
- LeetCode——Path Sum II
- LeetCode Path Sum II路径和II
- [leetcode] Path Sum II
- LeetCode:Path Sum II
- LeetCode113:Path Sum II
- Leetcode 113. Path Sum II
- leetcode-Path Sum II
- 动态规划小结 - 二维动态规划 - 时间复杂度 O(n*n)的棋盘型,题 [LeetCode] Minimum Path Sum,Unique Paths II,Edit Distance
- [LeetCode][Java] Path Sum II
- Leetcode 113. Path Sum II