题解 | #牛牛的链表删除#
牛牛的链表删除
https://www.nowcoder.com/practice/d3df844baa8a4c139e103ca1b1faae0f
#include <stdio.h> typedef struct Node { int val; struct Node* next; }node; int main() { int n, x; while (scanf("%d %d", &n, &x) != EOF) { // 注意 while 处理多个 case // 64 位输出请用 printf("%lld") to int t; node* head = (node*)malloc(sizeof(node)); node* pre = head; for (int i = 0; i < n; i++) { scanf("%d", &t); if (i==0) { head->val = t; } else{ pre->next = (node*)malloc(sizeof(node)); pre->next->val = t; pre = pre->next; } } pre->next = NULL; node* dummy = (node*)malloc(sizeof(node)); dummy->next = head; pre = dummy; while(pre->next) { if (pre->next->val == x) { node* t = pre->next; pre->next = t->next; free(t); } else { pre = pre->next; } } while(dummy->next) { printf("%d ", dummy->next->val); dummy = dummy->next; } } return 0; }