def shortest_path(source, target, graph): def target_check(u, v): return v==target parent, level = BFS(graph = graph, root = source, check_terminate = target_check) print("Parent: ", parent) print("Level: ",level) path = [target] cur_country = target if parent.get(cur_country) is None: return [] while parent[cur_country] is not None: parent_country = parent[cur_country] path.append(parent_country) cur_country = parent_country path.reverse() return path