题目描述
输入一颗二叉树的根节点和一个整数,打印出二叉树中结点值的和为输入整数的所有路径。路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径。
思路1:带有记忆的dfs,典型解法
1、先序遍历树,把节点加入路径
2、若该节点是叶子节点则比较当前路径和是否等于给定值
3、弹出节点,每一轮递归返回到父节点时,当前路径也应该回退一个节点
class Solution {
public:
vector<vector<int> > FindPath(TreeNode* root, int expectNumber) {
vector<vector<int>> res; //所有路径
vector<int> arr; //每一条路径
if (root == nullptr || expectNumber <= 0)
return res;
return dfs(root, expectNumber, arr, res);
}
vector<vector<int>> dfs(TreeNode* root, int numdist,</