797. 所有可能的路径
求出所有的可行性,一看就需要用dfs。
因为是有向图,所以不需要用visit数组来表示是否重复。无向图就需要
class Solution {
public List<List<Integer>> allPathsSourceTarget(int[][] graph) {
List<List<Integer>> result = new ArrayList<>();
List<Integer> temp = new ArrayList<>();
int n = graph.length;
temp.add(0);
dfs(result, temp, 0, graph, n);
return result;
}
public void dfs(List<List<Integer>> result, List<Integer> temp, int index, int[][] graph, int n) {
if(index == n-1) {
result.add(new ArrayList<Integer>(temp));
return;
}
if(graph[index].length == 0) {
return;
}
for(int i=0; i<graph[index].length; i++) {
int nextIndex = graph[index][i];
temp.add(nextIndex);
dfs(result, temp, nextIndex, graph, n);
temp.remove(temp.size() - 1);
}
}
}
网友评论