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

Remove Duplicates from Sorted List II

时间:2014-08-22 22:22:09      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:des   style   blog   color   使用   io   for   div   log   

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.

思路:若当前元素的next存在,且当前元素与其next值相同,则使用循环跳过后面所有与当前元素相同的元素。

 1 class Solution {
 2 public:
 3     ListNode *deleteDuplicates( ListNode *head ) {
 4         if( !head || !head->next ) { return head; }
 5         ListNode *end = 0, *node = head;
 6         head = 0;
 7         while( node ) {
 8             if( node->next && node->val == node->next->val ) {
 9                 node = node->next;
10                 while( node->next && node->val == node->next->val ) { node = node->next; }
11             } else {
12                 if( end ) {
13                     end->next = node;
14                     end = node;
15                 } else {
16                     head = end = node;
17                 }
18             }
19             node = node->next;
20         }
21         if( end ) { end->next = 0; }
22         return head;
23     }
24 };

 

Remove Duplicates from Sorted List II

标签:des   style   blog   color   使用   io   for   div   log   

原文地址:http://www.cnblogs.com/moderate-fish/p/3930244.html

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