82-删除排序链表中的重复元素 II-leetcode-链表

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。 示例 1: 输入: 1->2->3->3->4->4->5 输出: 1->2->5 示例 2: 输入: 1->1->1->2->3 输出: 2->3 

气死我了!码了一堆字,让我给删除了…删除了…直接上代码了,不好意思。

方案一(上文提到的的方法):

class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if ( !head ) return head; int flag=0; ListNode* ff = new ListNode; ff->next = head; ListNode* real_ff = ff; ListNode* f=head; ListNode* l = head->next; for ( ; l; l = l->next ) { if ( f->val == l->val ) { flag = 1; continue; } else if ( flag == 1 ) { ff->next = l; flag = 0; f = l; } else { f = f->next; ff = ff->next; } } if ( flag == 1 ) { ff->next = NULL; } return real_ff->next; } }; 

方案2:
无官方题解,上文解答时间复杂度为线性,可以使用。

下篇换专题,收工。

本网页由快兔兔AI采集器生成,目的为演示采集效果,若侵权请及时联系删除。

原文链接:https://bbs.csdn.net/skill/algorithm/algorithm-233b68b5a0654725a2202b7afd803489

更多内容