码迷,mamicode.com
首页 > 编程语言 > 详细

【链表】82. 删除排序链表中的重复元素 II

时间:2020-05-02 00:30:32      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:示例   重复数   重复   duplicate   color   for   strong   next   一个   

题目:

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

示例 1:

输入: 1->2->3->3->4->4->5
输出: 1->2->5
示例 2:

输入: 1->1->1->2->3
输出: 2->3

 

解答:

 

 1 /**
 2  * Definition for singly-linked list.
 3  * struct ListNode {
 4  *     int val;
 5  *     ListNode *next;
 6  *     ListNode(int x) : val(x), next(NULL) {}
 7  * };
 8  */
 9 class Solution {
10 public:
11     ListNode* deleteDuplicates(ListNode* head) 
12     {
13         ListNode dummy(0);
14         dummy.next = head;
15         ListNode *pre = &dummy;
16         ListNode *cur = head;
17         while(cur)
18         {
19             int i = cur->val;
20             if(cur->next && cur->next->val == i)
21             {
22                 while(cur && cur->val == i)
23                 {
24                     pre->next = cur->next;
25                     delete cur;
26                     cur = pre->next;
27                 }
28                 cur = pre;
29             }
30             pre = cur;
31             cur = cur->next;
32         }
33         return dummy.next;
34     }
35 };

 

【链表】82. 删除排序链表中的重复元素 II

标签:示例   重复数   重复   duplicate   color   for   strong   next   一个   

原文地址:https://www.cnblogs.com/ocpc/p/12815155.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!