删除链表中所有值相同的多余元素 (使得操作后的线性表中所有元素的值均不相同) 同时释放被删结点空间。
单链表类型定义如下:
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)**/
版权声明:本文为u013228403原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。