leetcode——82——Remove Duplicates from Sorted List II

来源:互联网 发布:么么哒 网络词汇 编辑:程序博客网 时间:2024/05/29 15:46
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving onlydistinct 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 || head->next == NULL)            return head;                    ListNode* pnode = head;        ListNode* pre = NULL;                       while(pnode!=NULL&&pnode->next!=NULL)        {                  if(pnode->val!=pnode->next->val)          {              pre = pnode;              pnode = pnode->next;          }          else          {              int val = pnode ->val;              while(pnode!=NULL&&pnode->val==val)              {                  pnode = pnode->next;                                }               if(pre==NULL){                    head = pnode;                }else{                    pre->next = pnode;                }                                                    }       }       return head;    }};

0 0
原创粉丝点击