#include <cstddef>
#include <iostream>
using namespace std;

struct Node{
    int val;
    Node *next;
};
int main() {
    int n,h,k;cin>>n>>h;
    Node *head = new Node;
    Node *p= new Node;
    head->val = h;
    head->next = nullptr;
    int pre,idx;
    n--;
    while(n--){
        cin>>idx>>pre;

        Node *q = new Node();
        q->val = idx;
        for(p = head;p!=nullptr;p = p->next){
            if(p->val==pre){
                q->next = p->next;
                p->next = q;
            }
        }
    }
    cin>>k;
    if(head->val==k){
        head = head->next;
    }
    for(p = head;p!=nullptr;p = p->next){
        if(p->next->val==k){
            p->next = p->next->next;
            break;
        }

    }
    for(p=head;p!=nullptr;p=p->next){
        cout<<p->val<<' ';
    }

    return 0;

}
// 64 位输出请用 printf("%lld")

思路不难,但是可能会遇到空指针错误,在20行,原来是直接new Node,后来改为new Node();之后就可以了,也不知道是为什么,求大佬解答。

活动地址https://www.nowcoder.com/discuss/726480854079250432