删除链表中所有值相同的多余元素

删除链表中所有值相同的多余元素 (使得操作后的线性表中所有元素的值均不相同) 同时释放被删结点空间。

单链表类型定义如下:

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)**/



你可能感兴趣的:(数据结构)