[LeetCode 题解]: Remove Duplicates from Sorted List

Given a sorted linked list, delete all duplicates such that each element appear only once.

For example,
Given 1->1->2, return 1->2.
Given 1->1->2->3->3, return 1->2->3.

题意:给定一个已排序的链表,删除其中重复的元素,保证每个元素有且仅有一个。

使用两个指针,分别指向前一个元素,和当前元素,比较两者。如果相同,则删除当前元素;否则,将当前元素换成新值。

public:
    ListNode *deleteDuplicates(ListNode *head) {
        if(head==NULL || head->next==NULL) return head;
        ListNode *pre,*tail;
        pre=head;
        tail=head->next;
        while(tail){
            if(tail->val == pre->val){
                pre->next=tail->next;
            }else{
                pre =pre->next;
            }
            tail=tail->next;
        }
        return head;        
    }
};

转载请注明出处: http://www.cnblogs.com/double-win/ 谢谢!

原文地址:https://www.cnblogs.com/double-win/p/3874015.html