总结用java实现图的DFS和BFS。
给你一个有 n 个节点的 有向无环图(DAG)。
请你找出所有从节点 0 到节点 n-1 的路径并输出(不要求按特定顺序)。
二维数组的第 i 个数组中的单元都表示有向图中 i 号节点所能到达的下一些节点,空就是没有下一个结点了。
无向图需要开辟一个数组来标记一个顶点是否访问。
对于有向图来说则不需要。
DFS:
List<List<Integer>> res = new ArrayList<>();
//用双端队列来表示stack
Deque<Integer> stack = new ArrayDeque<>();
public List<List<Integer>> allPathsSourceTarget(int[][] graph) {
//点数
int n = graph.length;
dfs(graph, 0, n - 1);
return res;
}