我见过一种tarjan的写法:
void tarjan(int now,int fa) { //.... for(int j=h[now];j;j=a[j].next) { int to=a[j].to; if (!dfn[to]) { tarjan(to,j); //...
我想问它是什么原理qaq 一般不是对于根节点和非根节点分别判断吗 把“根” 设为上一条边是什么意思呢