#include<stdio.h> #include<stdlib.h> #include<assert.h> typedef struct node { int nval; struct node* next; }node; node* creat(int x) { node* head = (node*)malloc(sizeof(node)); assert(head); head->next = NULL; head->nval = 0; node* p = head; for (int i = 0; i < x; i++) { int n; scanf("%d", &n); node* newNode = (node*)malloc(sizeof(node)); assert(newNode); newNode->nval = n; newNode->next = NULL; p->next = newNode; p = p->next; } return head->next; } void deletenode(node* p, int val) { node* p1 = p; node* p2 = p; p2 = p2->next; while (p2 != NULL) { if (p2->nval == val) { p1->next = p2->next; p2->next = NULL; p2 = p1->next; } else { p1 = p1->next; p2 = p1->next; } } } int main() { int m, n; scanf("%d %d", &m, &n); node* head1 = creat(m); deletenode(head1, n); node* head2 = head1; while (head2 != NULL) { printf("%d ", head2->nval); head2 = head2->next; } return 0; }