我的代码:
#include<bits/stdc++.h>
using namespace std;
int l[205],r[205],n,lc,rc,f;
void dfs(int t){
if(t==-1){
return;
}
cout<<t<<" ";
dfs(l[t]);
dfs(r[t]);
}
int main(){
memset(l,-1,205);
memset(r,-1,205);
cin>>n;
for(int i=1;i<=n;i++){
cin>>f;
if(f!=-1){
if(l[f]!=-1){
r[f]=i;
}else{
l[f]=i;
}
}
}
dfs(1);
return 0;
}
你的输入有问题
每行输入2个,你只输入了1个
这是你RE的原因
谢谢大佬
我改成这样了。。。a了
int main(){
memset(l,-1,205);
memset(r,-1,205);
cin>>n;
for(int i=1;i<=n;i++){
cin>>l[i]>>r[i];
}
dfs(1);
return 0;
}
1 个赞
感谢解决方案
1 个赞