To find strongly connected components in a directed graph G you need to first find a sink node. To find the sink node,DFS is run on the reverse graph of G-let’s call it H. Then the node with the highest post number (the time marking the node was left) would be a source node in H and therefore a sink node in G, allowing us to effectively identify a sink node in G.
Instead of doing all of this, why not simply use the node with the lowest post number in G? If the vertex with the highest post number in a graph in a source node, doesn’t it follow that the one with the lowest post number is a sink node? Why over complicate things by finding a source node in the reverse? Why not just use the vertex with the lowest post number in G as the sink node?
It might not be a sink. For example, for DFS from s in the graph
the traversal might be
so c has the lowest post number but is not a sink.