1、倒置单链表的算法void pur_LinkList(LinkList H) LNode *p,*q,*r;p=H-next; /*p 指向第一个结点*/if(p=NULL) return;while (p-next) q=p; while (q-next) /* 从*p 的后继开始找重复结点 */ if (q-next-data=p-data) r=q-next; /*找到重复结点 ,用 r 指向,删除*r */q-next=r-next; free(r); /*if*/else q=q-next; /*while(q-next)*/p=p-next; /*p 指向下一个,继续*/ /*whi
2、le(p-next)*/status LinkListReverse(LinkList L) /*对单链表中的元素倒置*/ int aN ,i=0,count=0;LinkList Lb;Node *p,*q;p=L-next;while(p!=NULL)ai+=p-data;p=p-next;count+;2.21 void reverse(SqList iA.elemj; /reverse 2.22 void LinkList_reverse(Linklist 为简化算法,假设表长大于 2 p=L-next;q=p-next;s=q-next;p-next=NULL; while(s-next) q-next=p;p=q; q=s;s=s-next; /把 L 的元素逐个插入新表表头 q-next=p;s-next=q;L-next=s; /LinkList_reverse 分析:本算法的思想是,逐个地把 L 的当前元素 q 插入新的链表头部,p 为新表表头.