class Solution { public: vector<vector<int>> ans; void dfs(int curr, int dest, vector<vector<int>>& graph, vector<int> &path) { path.push_back(curr); if(curr==dest) { ans.push_back(path); } else { for(auto x:graph[curr]) { dfs(x, dest, graph, path); } } path.pop_back(); } vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) { int n=graph.size()-1; vector<int> path; dfs(0, n, graph, path); return ans; } };