```c
void dfs2(int u, int v)
{
dfsn[u] = ++ timestamp;
rnk[timestamp] = u;
top[u] = v;
if(!son[u])return;
dfs2(son[u], v);
for(int i = h[u]; ~i; i = ne[i])
{
int j = e[i];
if(j == son[j] || j == fa[u])continue;
dfs2(j, j);
}
}
```
j == son[u] -> j == son[j]???
by Sakuya_maid @ 2023-08-10 22:42:19