3
// setting a few class variables, so that we do not have to pass them down all4
// the time in the recursive dfs calls6
vector<vector<int>> res;8
void dfs(vector<vector<int>> &graph, int currNode = 0) {10
tmp.push_back(currNode);11
// and either updating res with it if target is met12
if (currNode == target) res.push_back(tmp);13
// or callling dfs again recursively15
for (int node : graph[currNode]) {18
// backtracking with tmp21
vector<vector<int>> allPathsSourceTarget(vector<vector<int>> &graph) {22
target = graph.size() - 1;