LeetCode-113-Path Sum Ⅱ

这道题与上一篇博客的那道题非常类似,比那个题更近一步,要求找出节点之和等于给定数值的所有路径。
思路:与上一题类似,定义一个递归用的辅助函数helper,第一个参数是当前节点,第二个参数是与sum有关的值,第三个参数是一个vector的vector,用来存储所有路径,而第四个参数是一个用来存储当前路径的vector。为了能对路径进行修改,后两个参数都是引用类型。
函数定义如下:
void helper(TreeNode *node, int sum, vector<vector<int> > & paths, vector<int> &path);
代码实现也与上一题的非常类似,这里就不再仔细说明思路了。要注意最后两行代码,表示的含义是这条路径已经走到了叶子节点处理完了,因此要回到叶子节点的父节点,并且在回到那个节点之前我们要把减掉的叶子节点的数值再加回来。
代码如下:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据