题解 | #从单向链表中删除指定值的节点#
从单向链表中删除指定值的节点
https://www.nowcoder.com/practice/f96cd47e812842269058d483a11ced4f
#include <iostream>
using namespace std;
struct Node
{
int value;
struct Node* next;
Node(int x):value(x),next(nullptr){}
};
int main()
{
int len ;
cin>>len;
int headvalue;
cin>>headvalue;
Node* head = new Node(headvalue);
while(--len)
{
int a,b;
cin>>a>>b;
Node* temp = new Node(a);
Node* it = head;
while(it!=nullptr)
{
if(it->value == b)
{
temp->next = it->next;
it->next = temp;
break;
}
it = it->next;
}
}
int c;
cin>>c;
Node* it = head;
if(it->value==c)
{
head = head->next;
delete it;
}
else
{
while(it->next!=nullptr)
{
if(c==it->next->value)
{
Node* deleteNode = it->next;
it->next = it->next->next;
delete deleteNode;
}
it=it->next;
}
}
it = head;
while(it!=nullptr)
{
cout<<it->value<<" ";
it = it->next;
}
delete it;
}
// 64 位输出请用 printf("%lld")