797. All Paths From Source to Target

川长思鸟来 2022-05-24 13:42 280阅读 0赞

/*
Given a directed, acyclic graph of N nodes. Find all possible paths from node 0 to node N-1, and return them in any order.

The graph is given as follows: the nodes are 0, 1, …, graph.length - 1. graph[i] is a list of all nodes j for which the edge (i, j) exists.

Example:
Input: [[1,2], [3], [3], []]
Output: [[0,1,3],[0,2,3]]
Explanation: The graph looks like this:
0—->1
| |
v v
2—->3
There are two paths: 0 -> 1 -> 3 and 0 -> 2 -> 3.

Note:

  1. The number of nodes in the graph will be in the range \[2, 15\].
  2. You can print different paths in any order, but you should keep the order of nodes inside one path.

*/

class Solution {
public List column;

  1. public List<List<Integer>> allPathsSourceTarget(int\[\]\[\] graph) \{
  2. List<List<Integer>> g = new ArrayList<List<Integer>>();
  3. List<Integer> path = new ArrayList<Integer>();
  4. path.add(0);
  5. DFS(graph,0,g,path);
  6. return g;
  7. \}
  8. public void DFS(int\[\]\[\] graph, Integer node, List<List<Integer>> g, List<Integer> path)\{
  9. if(node==graph.length-1)\{
  10. g.add(new ArrayList<Integer>(path));
  11. return;
  12. \}
  13. for(int nextNode:graph\[node\])\{
  14. path.add(nextNode);
  15. DFS(graph, nextNode, g, path);
  16. path.remove(path.size()-1);
  17. \}
  18. \}

}

发表评论

表情:
评论列表 (有 0 条评论,280人围观)

还没有评论,来说两句吧...

相关阅读