按照规则将数据存入链表,然后删除对应的节点,最后输出链表。

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

int main() {
    int n;
    int number;
    cin >> n;
    cin >> number;
    list<int> nums;
    int number_p;
    nums.push_back(number);
    for (int i = 0; i < n - 1; i++) {
        cin >> number;
        cin >> number_p;
        for (auto it = nums.begin(); it != nums.end(); it++) {
            if (*it == number_p) {
                nums.insert(++it, number);
                break;
            }
        }
    }
    cin >> number;
    for (auto it = nums.begin(); it != nums.end(); it++) {
        if (*it == number) {
            it = nums.erase(it);
            if (nums.empty()) {
                break;
            }
            cout << *it << ' ';
        } else {
            cout << *it << ' ';
        }
    }
    return 0;
}
// 64 位输出请用 printf("%lld")