题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
http://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
#include<iostream>
#include<vector>
using namespace std;
int main()
{
int a,d;
while(cin>>a)
{
vector<int>b,c,e;
cin>>d;
e.push_back(d);
for(int i=0;i<a-1;i++)
{
int f,g;
cin>>f>>g;
b.push_back(f);
c.push_back(g);
}
int h;
cin>>h;
for(int i=0;i<a-1;i++)
{
for(int j=0;j<e.size();j++)
{
if(c[i]==e[j])
{
e.insert(e.begin()+j+1,b[i]);
break;
}
}
}
for(int i=0;i<e.size();i++)
{
if(e[i]==h)
{
e.erase(e.begin()+i, e.begin()+i+1);
break;
}
}
for(auto x:e)
{
cout<<x<<' ';
}
}
return(0);
}
#include<vector>
using namespace std;
int main()
{
int a,d;
while(cin>>a)
{
vector<int>b,c,e;
cin>>d;
e.push_back(d);
for(int i=0;i<a-1;i++)
{
int f,g;
cin>>f>>g;
b.push_back(f);
c.push_back(g);
}
int h;
cin>>h;
for(int i=0;i<a-1;i++)
{
for(int j=0;j<e.size();j++)
{
if(c[i]==e[j])
{
e.insert(e.begin()+j+1,b[i]);
break;
}
}
}
for(int i=0;i<e.size();i++)
{
if(e[i]==h)
{
e.erase(e.begin()+i, e.begin()+i+1);
break;
}
}
for(auto x:e)
{
cout<<x<<' ';
}
}
return(0);
}