LeetCode刷题-删除排序链表中的重复元素
2019-03-13 16:42
337 查看
删除排序链表中的重复元素
问题描述
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 :
- 输入: 1->1->2
输出: 1->2 - 输入: 1->1->2->3->3
输出: 1->2->3
Code1
时间复杂度O(n),空间复杂度O(1)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head) return head; ListNode dummy(head->val + 1); dummy.next = head; recur(&dummy, head); return dummy.next; } private: static void recur(ListNode *prev, ListNode *cur) { if(cur == nullptr) return; if(prev->val == cur->val) { prev->next = cur->next; delete cur; recur(prev, prev->next); } else { recur(prev->next, cur->next); } } };
Code2
时间复杂度O(n),空间复杂度O(1)
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(head == nullptr) return nullptr; for(ListNode *prev = head, *cur = head->next; cur; cur = prev->next) { if(prev->val == cur->val) { prev->next = cur->next; delete cur; } else { prev = cur; } } return head; } };
若有疑问欢迎评论!
相关文章推荐
- 每日一恋 - LeetCode 82 & 83. Remove Duplicates from Sorted List(删除排序链表中的重复元素)
- 【LeetCode-面试算法经典-Java实现】【082-Remove Duplicates from Sorted List II(排序链表中删除重复元素II)】
- [LeetCode] Remove Duplicates from Sorted List 删除排序链表中的重复元素
- LeetCode83. 删除排序链表中的重复元素
- Leetcode83. 删除排序链表中的重复元素
- Leetcode 82 删除排序链表中的重复元素 II Python C++ 史上最详细题解系列
- leetcode 083 删除排序链表中的重复元素
- [Leetcode] 82. 删除排序链表中的重复元素 II java
- LeetCode 82. 删除排序链表中的重复元素 II Python
- (Java) LeetCode 83. Remove Duplicates from Sorted List —— 删除排序链表中的重复元素
- [Leetcode] Remove duplicates from sorted list 从已排序的链表中删除重复元素
- [Leetcode] 83. 删除排序链表中的重复元素 java
- <LeetCode> 题112:删除排序链表中的重复元素
- Leetcode 83 删除排序链表中的重复元素 Python C++ 史上最详细题解系列
- (Java) LeetCode 82. Remove Duplicates from Sorted List II —— 删除排序链表中的重复元素 II
- LeetCode 83. 删除排序链表中的重复元素
- leetcode(83)—— 删除已排序链表重复元素(Remove Duplicates from Sorted List)
- [LeetCode] 83. Remove Duplicates from Sorted List 删除排序链表中的重复元素 @python
- LintCode 删除排序链表中的重复元素
- 删除排序链表中的重复元素