递增单链表去重
//递增单链表去除重复元素
//算法思想:采用尾插法,将原来的单链表置为是有第一个结点的链表,
//然后遍历剩下的节点,与新链表的尾结点比较,
//如果相同则删除当前结点,如果不同则插入
void Del_Sam(LinkList &L){
LNode *r = L->next,//r是新链表的尾指针
*p = r->next,//工作指针
*q;
while(p != NULL){
//如果与尾结点数据不同则插入
if(r->data != p->data){
r->next = p;
r = p;
p = p->next;
}
//如果相同则删除节点,继续向下遍历
else{
q = p;
p = p->next;
free(q);
}
}
r->next = NULL;//尾结点next置空
}