Kosaraju's algorithm is a linear time algorithm to find the strongly connected components of a directed graph