题解 | 从单向链表中删除指定值的节点
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
#include <iostream>
#include <list>
using namespace std;
int main() {
int n;
cin >> n;
list<int> lst;
int a;
int b;
cin >> a;
lst.push_back(a);
for (int i = 2; i <= n; ++i) {
scanf("%d%d", &a, &b);
auto it = lst.begin();
auto ed = lst.end();
while (it != ed && *it != b) ++it;
// *it == b
it++;
lst.insert(it, a);
}
int k;
cin >> k;
auto it = lst.begin();
while (it != lst.end() && *it != k) it++;
lst.erase(it);
// 输出最终结果
for (auto elem : lst)
cout << elem << ' ';
cout << endl;
return 0;
}
查看9道真题和解析