删除链表中所有值相同的多余元素 (使得操作后的线性表中所有元素的值均不相同) 同时释放被删结点空间。
单链表类型定义如下:
typedef struct LNode{
ElemType data;
struct LNode *next;
} LNode, *LinkList;
实现函数如下:
void Purge(LinkList &L)
{
LinkList p,s;
p = L;
while(p -> next){
s = p -> next;
if(s -> data == p -> data){
p -> next = s -> next;
free(s);
}
else
p = p -> next;
}
}
/**此算法的复杂度为O(n)**/