题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
#include <algorithm>
#include <iostream>
using namespace std;
#include <vector>
int main() {
int n, a1;
cin >> n >> a1;
vector<int> lb;
lb.insert(lb.end(), a1);
for (int i = 0; i < n - 1; i++) {
int a, b;
cin >> a >> b;
if (find(lb.begin(), lb.end(),
a) == lb.end()) { //链表里没有a,在b后面插入a
lb.insert(find(lb.begin(), lb.end(), b), a);
}
}
int d;
cin >> d;
vector<int> lb1 = lb;
for (int i = 0; i < lb.size(); i++) {
lb1[i] = lb[lb.size() - i - 1];
}
//cout<<lb.size();
vector<int> lb2;
for (int i = 0; i < lb1.size(); i++) {
if (lb1[i] != d) {
lb2.insert(lb2.end(), lb1[i]);
}
}
for (int i = 0; i < lb2.size(); i++) {
cout<<lb2[i]<<" ";
}
}
// 64 位输出请用 printf("%lld")

