# Learn Algorithms from LeetCode - 119 (0797. All Paths From Source to Target(Medium))

## Categories: Graph/DFS, Level: Medium

--

Introduction: (Basic + Advanced + Interview Edition)

Learning Algorithms from LeetCode + Interview Success Guide

(Regular price: 3591 NTD, Discounted price until 2023/06/30 23:59)

https://hiskio.com/bundles/eCP23B397?s=tc

(Regular price: 3990 NTD, Valid for a long term)

https://bit.ly/lc2022all

Please help me click on the “SHOW EMBED” below and give it 5 likes~ If you like it, you can also give me a round of applause~

(Liking doesn’t cost anything, thank you for supporting my writing~)

**Question:**

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]`

).

**Example 1:**

`Input: graph = [[1,2],[3],[3],[]]`

Output: [[0,1,3],[0,2,3]]

Explanation: There are two paths: 0 -> 1 -> 3 and 0 -> 2 -> 3.

**Example 2:**

`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]]

**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**.

**Analysis/Approach:**

Given a directed acyclic graph (DAG) with n nodes labeled from 0 to n — 1, we need to find all possible paths from node 0 to node n — 1 and return them…