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/ 谢谢!

相关文章:

  • 2021-12-07
  • 2022-12-23
  • 2021-05-22
  • 2021-12-02
  • 2022-12-23
  • 2021-07-08
猜你喜欢
  • 2021-06-08
  • 2021-08-09
  • 2021-06-13
  • 2021-11-17
  • 2021-09-19
  • 2021-06-02
  • 2022-01-17
相关资源
相似解决方案