Finds Strongly connected components in a graph using an adjacency list representation.