算法思想:利用尾插法 在逻辑上将一个链表分为两个因为是有序的所以直接比较删除就好了 类似于顺序表
void Delete_Same(LinkList &l){
if(l->next==NULL||l->next->next==NULL) //链表为空或链表中只有一个元素返回
return;
LinkList r=l->next; //尾指针指向第一个不重复的节点
LinkList cur=r->next; //游标指针指向第一个不重复结点的后继结点
LinkList temp; //用于删除的临时结点
while(cur){
if(cur->data!=r->data){
r->next=cur; //开始尾插法建立链表
r=cur;
cur=cur->next;
}else{
temp=cur;
cur=cur->next;
free(temp);
}
}
r->next=NULL; //尾指针置空
}