一天一道LeetCode#82. Remove Duplicates from Sorted List II

Posted ZeeCoder

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一天一道LeetCode#82. Remove Duplicates from Sorted List II相关的知识,希望对你有一定的参考价值。

一天一道LeetCode

本系列文章已全部上传至我的github,地址:ZeeCoder‘s Github
欢迎大家关注我的新浪微博,我的新浪微博
欢迎转载,转载请注明出处

(一)题目

Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.

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

(二)解题

题目大意:删除链表中重复的节点。

但凡是链表问题,都不要注意链表首尾,链表断裂等情况

具体思路看代码:

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
class Solution {
public:
    ListNode* deleteDuplicates(ListNode* head) {
         if(head==NULL) return head;//链表为空
         ListNode* newHead = NULL;//新链表头
         ListNode* newtail = NULL;//新链表位
         ListNode* p = head;
         bool ishead = true;//确定新链表的头
         while(p!=NULL)
         {
             ListNode* pnext = p->next;
             int count = 1;
             while(pnext!=NULL&&pnext->val==p->val) {//后续节点与p是否重复
                 count++;
                 pnext = pnext->next;
             }
             if(count==1){//等于1代表没有重复
                 if(ishead) {newHead = p;newtail = newHead;newtail->next=NULL;ishead =false;}//头结点需要特殊处理
                 else {
                     newtail->next = p;
                     newtail = newtail->next;
                     newtail->next=NULL;//这里注意一定要将尾节点的next指向NULL,不然就指向原链表的p的下一个了
                 }
             }
             p = pnext;
         }
         return newHead;
    }
};

以上是关于一天一道LeetCode#82. Remove Duplicates from Sorted List II的主要内容,如果未能解决你的问题,请参考以下文章

一天一道LeetCode#75. Sort Colors

#Leetcode# 82. Remove Duplicates from Sorted List II

[leetcode]82. Remove Duplicates from Sorted List

leetcode 82 Remove Duplicates from Sorted List II

LeetCode82 Remove Duplicates from Sorted List II

[LeetCode]82. Remove Duplicates from Sorted List II