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