83.Remove Duplicates from Sorted List
83.Remove Duplicates from Sorted List
难度:Easy
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
1
示例 1:
2
3
输入: 1->1->2
4
输出: 1->2
5
示例 2:
6
7
输入: 1->1->2->3->3
8
输出: 1->2->3
Copied!
使用快慢指针。
1
/**
2
* Definition for singly-linked list.
3
* struct ListNode {
4
* int val;
5
* ListNode *next;
6
* ListNode(int x) : val(x), next(NULL) {}
7
* };
8
*/
9
class Solution {
10
public:
11
ListNode* deleteDuplicates(ListNode* head) {
12
if(!head) return head;
13
ListNode* root=head;
14
ListNode* fast=head->next;
15
while(fast)
16
{
17
if(root->val == fast->val)
18
{
19
root->next = fast->next;
20
fast=fast->next;
21
}
22
else
23
{
24
root=root->next;
25
fast=fast->next;
26
}
27
}
28
return head;
29
}
30
};
Copied!
执行用时 :20 ms, 在所有 C++ 提交中击败了76.86%的用户 内存消耗 :9.2 MB, 在所有 C++ 提交中击败了48.46%的用户
Copy link