LeetCode:Path Sum II
来源:互联网 发布:大话数据结构知乎 编辑:程序博客网 时间:2024/06/07 17:04
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不太一样,这道题是要把所有的路径都求出来,而不只是返回一个找到与否的bool值。
要把路径记录下来,当一个结点的左右结点访问完后返回时,应当把该结点剔除掉,也就是说存储路径的容器应当具备栈后进先出的特点,在c++中用vector也可以实现,另外还需要一个二维的向量来保存所有路径。
代码如下:
class Solution {public: vector<vector<int>> pathSum(TreeNode* root, int sum) { vector<vector<int> > paths; vector<int> path; findPaths(root, sum, path, paths); return paths; }private: void findPaths(TreeNode* node, int sum, vector<int>& path, vector<vector<int> >& paths) { if (!node) return; path.push_back(node -> val); if (!(node -> left) && !(node -> right) && sum == node -> val) paths.push_back(path); findPaths(node -> left, sum - node -> val, path, paths); findPaths(node -> right, sum - node -> val, path, paths); path.pop_back(); }};
阅读全文
0 0
- 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
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式)
- HDU 2588 数论 欧拉函数
- LeetCode hard 4. Median of Two Sorted Arrays
- jquery对表单元素的取值和赋值
- bzoj 3444: 最后的晚餐
- LeetCode:Path Sum II
- android 鏈接 pc 端本地服務器 Connection to http://10.0.2.2:8080 refused
- 一些细小的知识
- POJ3259---Wormholes(最短路:验证存在负环)
- C++中四种强制转换符
- 今天发现了WinHex的一个有趣汉化方法
- 整合Spring和mybatis中遇到的问题(java.lang.AbstractMethodError)
- 486. Predict the Winner
- centos 下载地址