原题链接:Remove Duplicates from Sorted List
分析:因为链表已经是有序的,所以重复的值都会集中在一起,所以直接遍历,删除重复值就行。
题解:
/**
* 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) {
/*
Time Complexity:O(N)
Space Complexity:O(1)
*/
if(!head || !head->next)return head;
ListNode* res=head;
while(head->next){
if(head->val==head->next->val)head->next=head->next->next;
else head=head->next;
}
return res;
}
};
本文介绍了一种高效算法来移除有序链表中的重复元素,通过一次遍历即可完成,时间复杂度为O(N),空间复杂度为O(1)。此算法适用于已排序的链表数据结构。
203

被折叠的 条评论
为什么被折叠?



