题目链接:点击打开链接
题目大意:略。
解题思路:与 浙大版《C语言程序设计(第3版)》题目集 - 习题11-7 奇数值结点链表(20 分) 很像,但此题直接用删除的办法来做~
AC 代码
struct ListNode *readlist()
{
struct ListNode *h, *p, *pre;
int da, fst=1;
while(~scanf("%d", &da) && da!=-1)
{
p=(struct ListNode*)malloc(sizeof(struct ListNode));
p->data=da;
if(!fst) pre->next=p, pre->next->next=NULL, pre=pre->next;
if(fst) pre=h=p, fst=0;
}
return h;
}
struct ListNode *deletem( struct ListNode *L, int m )
{
struct ListNode *h, *pre=(struct ListNode*)malloc(sizeof(struct ListNode));
int da;
pre->next=L;
h=pre;
while(L)
{
da=L->data;
if(m==da) pre->next=L->next;
else pre=pre->next;
L=L->next;
}
return h->next;
}