#include <stdio.h>
#include <iostream>
typedef struct Lnode
{
int data;
struct Lnode* next;
}Lnode;
Lnode* init()
{
Lnode* L = new Lnode;
L->data = NULL;
Lnode* r = L;
int a = 0;
scanf_s("%d", &a);
while (a)
{
Lnode* p = new Lnode;
p->data = a;
p->next = r->next;
r->next = p;
r = p;
scanf_s("%d", &a);
}//若输入的值为0则表示输入结束
r->next = NULL;//此句一定要写 不然会发生异常中断
return L;
}
void Del(Lnode *&L,int x)
{
Lnode* p = L->next;
Lnode* pre = L;
while (p != NULL)
{
if (p->data == x)
{
pre->next = p->next;
break;
}
else
{
pre = p;
p = p->next;
}
}
}
int main()
{
Lnode *L1 = init();//创建一个新的链表
Del(L1, 2);
Lnode* p = L1 -> next;//用p去遍历
while (p)
{
printf("%d ", p->data);
p = p->next;
}//打印链表
return 0;
}
删除单链表中第一个值为x的元素
最新推荐文章于 2024-05-17 23:32:03 发布