题意:
给出一个链表,删除绝对值相同的结点,对于每个绝对值为K的结点,只保留第一次出现的那个。把被移除的结点组成一个新链表,输出删除去重后的链表和新链表。
思路:考察链表的“删除”操作,不难。
代码:
#include#include //abs()const int N=100000;struct Node{ int data; int curr,next;}LinkList[N],ansList[N];void printLinkList(int p){ while(p!=-1){ printf("%05d %d ",ansList[p].curr,ansList[p].data); if(ansList[p].next!=-1) printf("%05d\n",ansList[p].next); else printf("-1\n"); p=ansList[p].next; } }int main(){ //freopen("pat.txt","r",stdin); int head,n; scanf("%d%d",&head,&n); int curr,data,next; for(int i=0;i