1. 题目描述
给定一个有 n 个节点的 有向无环图(DAG),请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。
二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。
输入:graph = [[1,2,3],[2],[3],[]]
输出:[[0,1,2,3],[0,2,3],[0,3]]
2. 题目分析
首先我们根据题目描述画出图,并分析输入输出,输入输出都是二维数组,根据题目描述,我们采用深度优先搜索遍历图,求出所有可能的路径。具体,可以从0号位置出发, 用栈记录路径上的点, 每次当我们找到最终位置后就将其加入到返回列表中;因为操作中不会反复遍历同一个点,所以我们不用标记该点,采用回溯思想即可。
3. 代码实现
class Solution {
//创建一张二维列表
List<List<Integer>