Given a sorted linked list, delete all duplicates such that each element appear only
once.
For example,
Given
Given
Given
1->1->2, return
1->2.
Given
1->1->2->3->3, return
1->2->3.
[解题思路]
同样是双指针,但是这里要注意delete不用的节点。
[Code]
1: ListNode *deleteDuplicates(ListNode *head) {
2: // Start typing your C/C++ solution below
3: // DO NOT write int main() function
4: if(head == NULL) return NULL;
5: ListNode * pre = head;
6: ListNode *p = head->next;
7: while(p!=NULL)
8: {
9: if(pre->val == p->val)
10: {
11: ListNode* temp = p;
12: p = p->next;
13: pre->next =p;
14: delete temp;
15: continue;
16: }
17: pre = pre->next;
18: p = p->next;
19: }
20: return head;
21: }
本文介绍了一种算法,用于从已排序的链表中删除重复元素,确保每个元素只出现一次。通过双指针技术实现,有效地遍历并删除多余的重复节点。
1064

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



