# Adjacency list first_graph = { 1: [3, 20, 4, 5, 6], 2: [20], 3: [1, 20], 20: [2, 3], 4: [1], 5: [1], 6: [1] } # First exercise: go from 1, to 20, to 2 first_graph[first_graph[1][1]][0] # pass visited by reference def depth_first_search(graph: dict, start, visited=set(), traversal=list()): if start in visited: return visited.add(start) traversal.append(start) for x in graph[start]: depth_first_search(graph, x, visited, traversal) visited = set() traversal = list() depth_first_search(first_graph, 1, visited, traversal) print("Visited:", visited) print("Traversal:", traversal)