Rt , 我在自学的时候 , 看到欧拉路径的写法 :
void dfs(int u) {
for(int i=0;i<G[u].size();i++) {
if(!G[u][i].second) {
G[u][i].second=1;
dfs(G[u][i].first);
}
}
st.push(u);
return;
}
(这是以前的代码,复杂度有误,请忽视)
关键是这个 st.push(u) . 为什么它放在递归完成后 ,而不是遍历到一个点直接输出他 ? 请大佬指教 .
或者请提供一个hack数据我自己琢磨一下 .