题目链接:https://leetcode.cn/problems/all-paths-from-source-to-target/
题目如下:
class Solution {
public:
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
//思路:定义一个变量表示当前搜到的点,再通过这个点搜它的下一个点,搜完再删除这个结点。
path.push_back(0);//任何路径都是从节点0出发
backtracking(graph,0);
return res;
}
void backtracking(vector<vector<int>>& graph,int startIndex){
if(startIndex==graph.size()-1){//当遍历到的节点已经是最后一个节点,则表明找到了一条路径
res.push_back(path);
return ;
}
for(int i=0;i<graph[startIndex].size();i++){//遍历节点n连接的所有节点,并把每一次遍历到的节点都加入路径
path.push_back(graph[startIndex][i]);
backtracking(graph,graph[startIndex][i]);
path.pop_back();
}
}
private:
vector<vector<int>> res;
vector<int> path;
};