题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
#include <iostream> #include <unordered_map> using namespace std; int main() { int a, b, h, t, d; while (cin >> a >> b) { // 注意 while 处理多个 case unordered_map<int, int> mp; if(a==1) return 0; mp[b]=-1; for(int i=1; i<a; i++) { cin>>t>>h; if(mp[h]==-1) { mp[h] = t; mp[t] = -1; } else { mp[t] = mp[h]; mp[h] = t; } } cin>>d; if(b==d) b = mp[b]; else { for(auto& e: mp) { if(e.second==d) { e.second=mp[d]; break; } } } cout<<b<<" "; while(mp[b]!=-1) { cout<<mp[b]<<" "; b = mp[b]; } } }