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

查看21道真题和解析