using System.Collections.Generic;
public static void Main()
var sol = new Solution();
sol.AllPathsSourceTarget(graph);
public IList<IList<int>> AllPathsSourceTarget(int[][] graph) {
var paths = new List<IList<int>>();
var path = new List<int>();
GetAllPaths(0,paths,path,graph);
private void GetAllPaths(int start, List<IList<int>> paths, List<int> path, int[][]graph){
if(start == graph.Length - 1){
for(int i=0;i<graph[start].Length;i++){
GetAllPaths(graph[start][i], paths, path, graph);
path.Remove(graph[start][i]);
private void PrintPath(IList<int> path){
for(int i=0;i<path.Count;i++){
Console.Write(path[i] + "=>");
private void PrintAllPaths(List<IList<int>> paths){
for(int i=0;i<paths.Count;i++){