标签:
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