删除链表中值为m的结点
(1)创建一个链表
(2)打印删除前的链表
(3)查找值为m的前一个结点
(4)执行删除操作
(5)打印删除后的链表
#include <stdio.h>
#include <stdlib.h>
typedef struct LNode{
int data;
struct LNode * next;
}LNode,*LinkList;
//头插法
LinkList CreateList_L(){
//创建一个头节点
LinkList L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
int x;
scanf("%d",&x);
while(x!=9999){
LinkList P=(LinkList)malloc(sizeof(LNode));
P->data=x;
P->next=L->next;
L->next=P;
scanf("%d",&x);
}
return L; //返回头节点
}
//删除值为x的节点
void delete_L(LinkList L,int x){
LinkList p,q;
p=L;
while(p!=NULL){
if(p->next->data==x){
break;
}
p=p->next;
}
q=p->next;
p->next=q->next;
free(q);
}
void PrintList(LinkList L) {
LinkList p = L->next;
while (p != NULL) {
printf("%d -> ", p->data);
p = p->next;
}
printf("NULL\n");
}
int main() {
LinkList list1 = CreateList_L();
PrintList(list1);
int n;
scanf("%d",&n);//输入你要删除的数字
delete_L(list1, n); // 在链表中删除数字 n
PrintList(list1); // 再次打印链表以查看删除结果
return 0;
}
标签:LinkList,LNode,删除,--,next,链表,int,C语言
From: https://blog.csdn.net/m0_62989829/article/details/143490858