Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1, and return them in any order.
The graph is given as follows: graph[i] is a list of all nodes you can visit from node i (i.e., there is a directed edge from node i to node graph[i][j]).
Example 1:

Input: graph = [[1,2],[3],[3],[]] Output: [[0,1,3],[0,2,3]] Explanation: There are two paths: 0 -> 1 -> 3 and 0 -> 2 -> 3.
Constraints:
n == graph.length2 <= n <= 150 <= graph[i][j] < ngraph[i][j] != i (i.e., there will be no self-loops).//from huahua
class Solution { public: vector<vector<int>> allPathsSourceTarget(vector<vector<int>>& graph) { vector<vector<int>> ans; vector<int> path(1,0); //定义长度为1,初始值为0的数组path dfs(graph,0,graph.size()-1,path,ans); return ans; } private: void dfs( vector<vector<int>>& graph,int cur,int dest,vector<int> &path,vector<vector<int>>& ans){ if(cur==dest){ ans.push_back(path); return; } for(int next:graph[cur]){ path.push_back(next); dfs(graph,next,dest,path,ans); path.pop_back(); //删除path数组中最后一个元素 } } };
797. All Paths From Source to Target
原文:https://www.cnblogs.com/Makerr/p/14668802.html