1 solutions

  • 1
    @ 2026-1-10 9:15:08
    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e5+10;
    vector<int> g[N];
    vector<int> ans;
    void dfs(int u,int fa)
    {
    	ans.push_back(u);//走到了当前城市
    	for(auto j:g[u])
    	{
    		if(j==fa) continue;//往回走的
    		dfs(j,u);//继续往下
    		ans.push_back(u);//又回来了
    	}
    }
    int main()
    {
    	int n;
    	cin>>n;
    	for(int i=1;i<n;i++)
    	{
    		int a,b;
    		cin>>a>>b;
    		g[a].push_back(b);
    		g[b].push_back(a);
    	}
    
    	for(int i=1;i<=n;i++)
    	{
    		sort(g[i].begin(),g[i].end()); //按照字典序排序
    	}
    	dfs(1,-1);//去遍历所有节点
    	for(auto x:ans)
    	{
    		cout<<x<<" ";
    	}
    	return 0;
    }
    

    Information

    ID
    2772
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    # Submissions
    4
    Accepted
    3
    Uploaded By