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