若你在进行排序时使用了一个全局的数组暂时存储,并且你并没有将递归和排序放到两个循环中,那你下一轮的dfs会将数组中的信息覆盖掉
例:
从
for (int i = 0; i < e[u].size(); i++)
{
if (e[u][i] == fa) continue;
int v = e[u][i];
dfs(v, u);
st[++tmp] = v;
}
到
for (int i = 0; i < e[u].size(); i++)
{
if (e[u][i] == fa) continue;
dfs(e[u][i], u);
}
for (int i = 0; i < e[u].size(); i++)
{
if (e[u][i] == fa) continue;
st[++tmp] = e[u][i];
}
30pt -> 100pt