首页 > 代码库 > Remove Duplicates from Sorted List II
Remove Duplicates from Sorted List II
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。