解题思路:先创建链表,再删除,比较简单
注意事项:指针
参考代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct List{
int num;
struct List* next;
}List;
//创建链表
List* creat_List(int n)
{
List* head=malloc(sizeof(List));
head->num=-1;
head->next=NULL;
int i; List* tmp=head;
for(i=0;i<n;i++)
{
List* newptr=malloc(sizeof(List));
scanf("%d",&newptr->num);
newptr->next=NULL;
tmp->next=newptr;
tmp=newptr;
}
tmp->next=NULL;
return head;
}
//删除链表节点
List* delete_List(List* head,int m)
{
List *pre,*p;
int j=0;
p=head->next;
while(p->next)
{
if(p->num!=m)
{
while(p->num!=m&&p->next)
{
pre=p;
p=p->next;
}
}
if(p->num==m)
{
pre->next=p->next;
free(p);j++;
}
p=pre->next;
}
return head;
}
int main()
{
int n;
scanf("%d",&n);
List* head=creat_List(n);
List* tmp=head;
int m,i,j=0;
scanf("%d",&m);
List* tmp2=delete_List(tmp,m);
tmp2=tmp2->next;
while(tmp2)
{
printf("%d ",tmp2->num);
tmp2=tmp2->next;
}
return 0;
}
0.0分
2 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复