lintcode

112. 删除排序链表中的重复元素

2018-01-04  本文已影响19人  和蔼的zhxing

给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null,返回 1->2->null
给出 1->1->2->3->3->null,返回 1->2->3->null

比较删除

排好序的比较好处理,相同的肯定是相邻出现的,只要比较当前值和下一个值就可以,如果不同,则遍历下一个,如果相同,则跳过下一个进行遍历(顺便把中间的删除掉,链表的删除就是一个链接的过程)。

  ListNode * deleteDuplicates(ListNode * head) {
        
        if(head==NULL)
        return NULL;
        ListNode *temp=head;
        while(temp->next!=NULL)
        {
          if(temp->val!=temp->next->val)
          {
              temp=temp->next;
          }
          else
          temp->next=temp->next->next;
        }
        return head;
        // write your code here
    }
上一篇下一篇

猜你喜欢

热点阅读