一、题目
二、代码
class Solution
{
//深度优先极其类似于回溯
List<List<Integer>> ans; //用来存放满足条件的路径
List<Integer> cnt; //用来保存dfs过程中的节点值
public void dfs(int[][] graph, int node)
{
if(node == graph.length-1)
{
ans.add(new LinkedList<>(cnt));
return ;
}
for(int index = 0; index< graph[node].length;index++)
{
int nextNode = graph[node][index];
cnt.add(nextNode);
dfs(graph,nextNode);
cnt.remove(cnt.size()-1);
}
}
public List<List<Integer>> allPathsSourceTarget(int[][] graph)
{
ans = new LinkedList<>();
cnt = new LinkedList<>();
cnt.add(0);
dfs(graph,0);
return ans;
}
}