码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 82. Remove Duplicates from Sorted List II

时间:2015-02-21 17:42:24      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

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.

[Solution]

 1 ListNode *deleteDuplicates(ListNode *head) 
 2     {
 3          ListNode dummy = ListNode(INT_MIN), *p, *q, *r;
 4          dummy.next = head;
 5          
 6          r = &dummy;
 7          p = r->next;
 8          while (p != NULL && p->next != NULL)
 9          {
10              q = p->next;
11              if (p->val == q->val)
12              {
13                  while ((q != NULL) && (p->val == q->val))
14                  {
15                      p->next = q->next;
16                      q = p->next;
17                  }
18                  r->next = p->next;
19                  p = r->next;
20              }
21              else
22              {
23                  r = p;
24                  p = p->next;
25              }
26          }
27 
28          return dummy.next;
29     }

 

leetcode 82. Remove Duplicates from Sorted List II

标签:

原文地址:http://www.cnblogs.com/ym65536/p/4297078.html

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