leetcode Path Sum II
来源:互联网 发布:gal 知乎 编辑:程序博客网 时间:2024/06/16 01:43
哎这个题一个典型的dfs 但是不会标记路线的我还是不会 只能寻求解答 至少现在我会标记路线了
struct TreeNode {
int val;
TreeNode *left;
TreeNode *right;
TreeNode(int x) :val(x), left(NULL),right(NULL) {}
};
void findpath(TreeNode* root,vector<int> path)
{
if(!root)return;
path.push_back(root->val);
findpath(root->left, path);
findpath(root->right,path);
path.pop_back();
}
还想了一会为什么要pop.back()。。。 因为走到这个节点的时候就已经把这个节点push back进入path了 为了不影响下一次的路径 必须把当前push过的pop掉 这样才可以保证每次走过这个节点时纪录的是从根节点到现在节点的路径然后知道这个之后 只需要在最后一步把path 放入 该返回的结果二维vector中就行了
class Solution {
private:
void findpath(TreeNode* root,int sum,vector<int> &path,vector<vector<int>> &res)
{
if(!root)return;
path.push_back(root->val);
if(root->val==sum&&!root->left&&!root->right)
res.push_back(path);
findpath(root->left, sum-root->val, path, res);
findpath(root->right, sum-root->val, path, res);
path.pop_back();
}
public:
vector<vector<int>> pathSum(TreeNode* root, int sum) {
vector<vector<int>> res;
vector<int> path;
findpath(root, sum,path,res);
return res;
}
};
学习了走路的问题
- 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
- [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
- Leetcode Path Sum II
- LeetCode | Path Sum II
- 【leetcode】Path Sum II
- [LeetCode] Path Sum II
- Hbase无法启动
- 存储持续性、作用域和链接性
- 算法之选择排序
- 编程挑战1——求逆置回文最少转换次数
- TPshop学习(9)银联支付
- leetcode Path Sum II
- [JS] jQuery与table
- 2018校招网易笔试——最长01交错子串
- 【HDU 6113 度度熊的01世界 】 & DFS
- POJ
- Visual Assist 返回下一个光标点的设置
- IDEA Spinrg boot 热部署配置
- 基于socket的TCP和UDP通讯的简单建立
- springioc容器学习第三篇----ApplicationContext容器初始化