题解 | 求树的根
求树的根
https://www.nowcoder.com/practice/e5a97317b37d46dcb10dd5dce66a2ec4
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+5;
vector<int> g[N];
int d[N];
int ou[N];
vector<int> v;
int main() {
int n;cin>>n;
if(n==1){ cout<<1<<endl<<1; return 0;}
for(int i=0;i<n-1;i++){
int a,b;cin>>a>>b;
g[a].push_back(b);
d[b]++;
ou[a]++;
}
for(int i=1;i<=n;i++){
if(d[i]==0){
cout<<i<<endl;
break;
}
}
for(int i=1;i<=n;i++){
if(ou[i]==0){
v.push_back(i);
}
}
sort(v.begin(),v.end());
for(int j:v){
cout<<j<<" ";
}
}
// 64 位输出请用 printf("%lld")

查看5道真题和解析