All Paths From Source to Target - Problem

Given a directed acyclic graph (DAG) of n nodes labeled from 0 to n - 1, find all possible paths from node 0 to node n - 1 and return them in any order.

The graph is given as follows: graph[i] is a list of all nodes you can visit from node i (i.e., there is a directed edge from node i to node graph[i][j]).

Input & Output

Example 1 — Basic DAG
$ Input: graph = [[1,2],[3],[3],[]]
Output: [[0,1,3],[0,2,3]]
💡 Note: There are two paths from node 0 to node 3: Path 1 goes 0→1→3, and Path 2 goes 0→2→3. Both paths reach the target node 3.
Example 2 — Single Path
$ Input: graph = [[4,3,1],[3,2,4],[3],[4],[]]
Output: [[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]
💡 Note: There are 5 different paths from node 0 to node 4. Each path represents a different route through the DAG to reach the target.
Example 3 — Linear Path
$ Input: graph = [[1],[2],[]]
Output: [[0,1,2]]
💡 Note: Only one path exists: 0→1→2. This is a simple linear path from source to target.

Constraints

  • n == graph.length
  • 2 ≤ n ≤ 15
  • 0 ≤ graph[i][j] < n
  • graph[i][j] != i (i.e., there will be no self-loops)
  • All the elements of graph[i] are unique
  • The input graph is guaranteed to be a DAG

Visualization

Tap to expand
All Paths From Source to Target0123SOURCETARGETGraph Representationgraph[0] = [1, 2]graph[1] = [3]graph[2] = [3]graph[3] = []All Possible Paths:Path 1: [0, 1, 3]Path 2: [0, 2, 3]Output: [[0,1,3],[0,2,3]]
Understanding the Visualization
1
Input Graph
DAG with nodes 0 to n-1, adjacency list representation
2
Explore Paths
Use DFS to find all paths from node 0 to node n-1
3
Collect Results
Return all complete paths as list of lists
Key Takeaway
🎯 Key Insight: Use DFS with backtracking to systematically explore all paths while maintaining the current path state
Asked in
Facebook 12 Amazon 8 Google 6
125.0K Views
Medium Frequency
~15 min Avg. Time
4.3K Likes
Ln 1, Col 1
Smart Actions
💡 Explanation
AI Ready
💡 Suggestion Tab to accept Esc to dismiss
// Output will appear here after running code
Code Editor Closed
Click the red button to reopen