83. Remove Duplicates from Sorted List

来源:互联网 发布:亨通大数据产业园 编辑:程序博客网 时间:2024/06/05 06:01

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.

给定一个已经排序好的链表,删除其中的重复元素。

设置两个指针,ListNode *p=head,ListNode *q=head->next,两个指针一前一后遍历整个链表,当发现重复元素时q=q->next,否则p->next=q,p=q,q=q->next;

class Solution

{

public:
    ListNode* deleteDuplicates(ListNode* head) 

    {

      ListNode* p=head;

      ListNode* q=head->next;

      while(q!=NULL)

      {

         if(p->val==q->val)

           {

            q=q->next;

           }

           else

            {

               p->next=q;

               p=q;

               q=q->next;

            }

      

      }

    q->next=NULL;

     return head;




   }


};