题解 | 从单向链表中删除指定值的节点
从单向链表中删除指定值的节点
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; }