C++ 简单粗暴
思路:
1,已知头结点,利用对组pair,找pair.second的位置,然后插入pair.frist
2,找到最后一个数的位置,删除他
3,最后输出

#include <iostream>
#include <string>
#include <forward_list>//单项链表
#include <list>//双项链表
#include <algorithm>
using namespace std;
int main() 
{
    forward_list<int> lis1;
    pair<int,int> T;
    int lis_num,lis_head,lis_eas;
    cin>>lis_num>>lis_head;
    lis1.push_front(lis_head);
    for(int i=0;i<lis_num-1;i++)//已知头结点,利用对组pair,找pair.second的位置,然后插入pair.frist
    {
        cin>>T.first>>T.second;
        forward_list<int> :: iterator it=find(lis1.begin(),lis1.end(),T.second);
        lis1.insert_after(it, T.first);  
    }
    cin>>lis_eas;
    forward_list<int> :: iterator es=find(lis1.begin(),lis1.end(),lis_eas); //找到最后一个数的位置,删除他
    lis1.remove(*es);
    for(forward_list<int> :: iterator la=lis1.begin();la!=lis1.end();la++)//最后输出
    {
        cout<<*la<<' ';
    }
    return 0;
}