首页 > 代码库 > [leetcode]Remove Duplicates from Sorted List II
[leetcode]Remove Duplicates from Sorted List II
问题描述:
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving onlydistinct 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
.
基本思路:
设定一个标志是否是重复数字的变量isrepeat,当前和后一个一样就将isrepeat置true。 然后将isrepeat的节点删除,留下不重复节点。
代码:
ListNode *deleteDuplicates(ListNode *head) { //C++ if(head == NULL || head->next == NULL) return head; ListNode tmphead(0); tmphead.next= head; ListNode* pre = &tmphead; ListNode* tmp = head; bool isRepeat = false; while(tmp->next != NULL) { if(tmp->val == tmp->next->val) { isRepeat = true; } else { if(isRepeat) { isRepeat = false; } else { pre->next = tmp; pre = tmp; } } tmp = tmp->next; } if(!isRepeat) { pre->next = tmp; pre = tmp; } pre->next = NULL; return tmphead.next; }
[leetcode]Remove Duplicates from Sorted List II
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。