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

  • Post author:
  • Post category:其他


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

单链表类型定义如下:

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 版权协议,转载请附上原文出处链接和本声明。