Leetcode 删除重复的链表元素
2013-05-30 10:52
423 查看
给定一个链表,其中可能包含重复的元素,比如1->2->2->3->4
第一题:删除多余的重复的元素: 也就是得到1->2->3->4
第二题:删除所有的重复的元素:1->3->4
结构体和函数声明如下:
第一题:
第二题:
感觉第二个比较有趣,要考虑的情况也多一点,关键是找到distinct value,并且加入到新的链表中去
第一题:删除多余的重复的元素: 也就是得到1->2->3->4
第二题:删除所有的重复的元素:1->3->4
结构体和函数声明如下:
typedef struct Node { int val; ListNode * next; } *ListNode ListNode * removeDuplicates(ListNode * head)
第一题:
{ if(head == NULL) return NULL; ListNode * cur1 = head; ListNode * cur2 = head; while(cur2 != NULL) { int val = cur1->val; while(cur2 && cur2->val == cur1->val) { cur2 = cur2 ->next; } cur1->next = cur2; cur1 = cur1->next; } return head; }
第二题:
感觉第二个比较有趣,要考虑的情况也多一点,关键是找到distinct value,并且加入到新的链表中去
{ ListNode *pre = head, *cur = head,*dummy,*tail; dummy = new ListNode(); tail = dummy; while(cur != NULL && cur->next != NULL) { //如果遇到相等的元素,就不断的向后移动 while(cur->next != NULL && cur->val == cur->next->val) cur = cur->next; // distinct value,加入到新的链表中去 if(pre == cur) { tail->next = pre; tail = tail->next; } pre = cur->next; cur = cur->next; } tail -> next = cur; return dummy->next; }
相关文章推荐
- leetcode(83)—— 删除已排序链表重复元素(Remove Duplicates from Sorted List)
- [LeetCode]Merge Two Sorted Lists & Remove Duplicates from Sorted List 两个有序链表合并为一个&删除链表重复元素
- [LeetCode]83. Remove Duplicates from Sorted List(删除有序链表的重复元素 )
- LeetCode 83. 删除排序链表中的重复元素
- (LeetCode)Remove Duplicates from Sorted List --- 链表中删除重复元素
- Leetcode Remove Duplicates from Sorted List II 删除链表中重复的元素II
- (Java) LeetCode 83. Remove Duplicates from Sorted List —— 删除排序链表中的重复元素
- (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
- leetcode-83. Remove Duplicates from Sorted List(删除有序链表中的重复元素)
- leetcode83,删除有序链表中的重复元素
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- [LeetCode] Remove Duplicates from Sorted List 删除排序链表中的重复元素
- Leetcode Remove Duplicates from Sorted List 删除链表中的重复元素
- LeetCode83. 删除排序链表中的重复元素
- [LeetCode] 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素 @python
- <LeetCode> 题112:删除排序链表中的重复元素
- leetcode 删除有序链表中的重复元素
- [Leetcode] Remove duplicates from sorted list 从已排序的链表中删除重复元素
- 删除链表中的重复元素
- python_lintcode_115不同的路径 II_112删除排序链表中的重复元素