删除单链表中的重复元素

 

利用3个指针,第一个指针遍历整个链表,第二个指针遍历第一个指针后的所有元素,第三个指针用来保存重复元素并删除。当第一个指针和第二个指针元素值相同,则表明出现重复,删除第二个指针指向的元素。

void delete_dup(Node* head) { Node *p,*q,*r; p = head->next; // 跳过头结点 while( p != NULL ) { q=p; while ( q->next ) { if ( q->next->data == p->data ) { r = q->next; q->next = r->next; free(r); } else q = q->next; } p = p->next; } } 

 

你可能感兴趣的:(删除单链表中的重复元素)