class Solution {
public:
vector<vector<int>> paths;
void findPath(vector<vector<int>> &graph ,vector<int> path,int x,int target)
{
if(x==target)
paths.emplace_back(path);
for(auto each:graph[x]){
auto tmp=path;
tmp.push_back(each);
findPath(graph,tmp,each,target);
}
}
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
paths.clear();
int N=(int) graph.size();
findPath(graph,vector<int>{0},0,N-1);
return paths;
}
};
public:
vector<vector<int>> paths;
void findPath(vector<vector<int>> &graph ,vector<int> path,int x,int target)
{
if(x==target)
paths.emplace_back(path);
for(auto each:graph[x]){
auto tmp=path;
tmp.push_back(each);
findPath(graph,tmp,each,target);
}
}
vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) {
paths.clear();
int N=(int) graph.size();
findPath(graph,vector<int>{0},0,N-1);
return paths;
}
};