题解 | #牛牛的链表删除#
牛牛的链表删除
https://www.nowcoder.com/practice/d3df844baa8a4c139e103ca1b1faae0f
#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
int date;
struct Node* next;
}Node,*List;
List InitList(Node* p,int n)
{
Node* t = p;
for (int i = 0; i < n; i++)
{
t->next = (Node*)malloc(sizeof(Node));
t = t->next;
scanf("%d", &t->date);
}
t->next = NULL;
return p;
}
void Delete(List L, Node* p)
{
Node* q = L;
while (q->next != p)
q = q->next;
q->next = p->next;
free(p);
}
int main()
{
List L = (List)malloc(sizeof(Node));
int n = 0, x = 0;
scanf("%d%d", &n, &x);
L = InitList(L, n);
Node* p = L->next;
Node* q = p->next;
for (int i = 0; i < n; i++)
{
if (p->date == x)
{
Delete(L, p);
}
if (q)
{
p = q;
q = q->next;
}
}
L = L->next;
while (L)
{
printf("%d ", L->date);
L = L->next;
}
return 0;
}