题目链接:点击打开链接
题目大意:略。
解题思路:与 浙大版《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; }