如果点 u 可以到达点 v,且点 v 已经被遍历过,但没有被弹出栈,那么说明点 v 是在点 u 所在的强连通分量之内的。
此时应该取 min{low[u],dfn[v]} 作为 low[u]的值。因为点 v 是在点 u 所在的强连通分量之内的,所以点 v 的时间戳 dfn[v] 一定是比点 u 早的,如果 low[u] 取 min{low[u], dfn[v]},那么就能保证这个强连通分量中能追溯到的最早时间戳是在该强连通分量中的。
而如果点 v 在栈中,说明点 v 没有被遍历过。如果点 v 在栈中,点 v 部分的深搜还没有结束,可能会继续找到更早的节点,所以点 v 的 low 值不能确定,所以我们采用 dfn[v]来更新 low[u]