题目描述:
Given a sorted linked list, delete all duplicates such that each element appear only once.
Example 1:
Input: 1->1->2
Output: 1->2
Example 2:
Input: 1->1->2->3->3
Output: 1->2->3
给定有序链表,对于重复元素,只保留一个。定义两个指针,一个指向上一个元素,一个指向当前元素,发现重复直接跳过。
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
if(head==NULL) return head;
ListNode* p=head->next;
ListNode* q=head;
while(p!=NULL)
{
if(p->val==q->val) q->next=p->next;
else q=p;
p=p->next;
}
return head;
}
};