leetcode 113 Path Sum II
2016-06-10 19:50
295 查看
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
Subscribe to see which companies asked this question
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
void findPath(vector<vector<int>> &res, vector<int> vec, TreeNode *root, int remain) {
if(root!=NULL && root->left==NULL && root->right==NULL) {
if(remain == root->val) {
vec.push_back(root->val);
res.push_back(vec);
}
return;
}
if(root==NULL) return ;
//if(root!=NULL && root->val > remain) return;
vec.push_back(root->val);
findPath(res, vec, root->left, remain-root->val);
findPath(res, vec, root->right, remain-root->val);
return;
}
vector<vector<int>> pathSum(TreeNode *root, int sum) {
vector<vector<int>> res;
vector<int> vec;
findPath(res, vec, root, sum);
return res;
}
};
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] ]
Subscribe to see which companies asked this question
/**
* Definition for a binary tree node.
* struct TreeNode {
* int val;
* TreeNode *left;
* TreeNode *right;
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
void findPath(vector<vector<int>> &res, vector<int> vec, TreeNode *root, int remain) {
if(root!=NULL && root->left==NULL && root->right==NULL) {
if(remain == root->val) {
vec.push_back(root->val);
res.push_back(vec);
}
return;
}
if(root==NULL) return ;
//if(root!=NULL && root->val > remain) return;
vec.push_back(root->val);
findPath(res, vec, root->left, remain-root->val);
findPath(res, vec, root->right, remain-root->val);
return;
}
vector<vector<int>> pathSum(TreeNode *root, int sum) {
vector<vector<int>> res;
vector<int> vec;
findPath(res, vec, root, sum);
return res;
}
};
相关文章推荐
- 山东第7届省赛 J题 Execution of Paladin
- LaTeX在双栏模式下插入跨栏图表
- Run Loops 是个什么东西。
- sortable图片拖拽插件
- 负载均衡lvs搭建方案
- 没有被调用的函数其代码为什么会被执行?
- 斜杠/和反斜杠\的区别
- gcc编译警告
- Hadoop:Hadoop单机伪分布式的安装和配置
- 数据结构与算法之五 链接列表
- 数据结构与算法之五 链接列表
- 数据结构与算法之五 链接列表
- Hadoop:Hadoop单机伪分布式的安装和配置
- MySQL导入CSV文件
- jquery动画中显示、隐藏
- UVA 11584 Partitioning by Palindromes
- ?super T 和? extends T区别
- phpMyadmin
- NullPointerException异常的原因及java异常??
- 实现char*和CString的转换