## **改了一下,因为~~看了题解后~~突然发现如果在链表尾部向右插入量会溢出链表**
### s.end()这个位置是空的
###### ~~但是我还是RE RE RE RE RE~~
~~[哎呀你干嘛!还嗨哟~]()~~
```cpp
#include <bits/stdc++.h>
using namespace std;
list<int>s;
list<int>::iterator it,its[5000005];
int a[5000005],b[5000005],n,m,l,x1,x2;bool c[5000005];
int main()
{
cin>>n;
s.push_front(1);
its[1]=s.begin();
for(int i=2;i<=n;i++){
cin>>a[i]>>b[i];
}
cin>>m;
for(int i=1;i<=m;i++){
cin>>x1;
c[x1]=1;
}
for(int i=2;i<=n;i++){
if(c[i]==1) continue;
if(b[i]==1){
it=its[a[i]];
++it;
if(it==s.end()) s.push_back(i);//特判溢出情况
else s.insert(it,i);
}
if(b[i]==0){
it=its[a[i]];
s.insert(it,i);
}
// for(auto i=s.begin();i!=s.end();i++)
// {
// cout<<*i<<" ";
// }
// cout<<endl;//调试用
// }
for(auto i=s.begin();i!=s.end();i++)
{
cout<<*i<<" ";
}
cout<<endl;
return 0;
}
```
by liubingrui @ 2024-02-06 23:17:33
# _[打错了]()_
### 第37行那个↓
```cpp
// }
```
**双斜杠去掉**
by liubingrui @ 2024-02-06 23:22:11