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) {
ListNode* p=head;
while(p&&p->next){
if(p->next->val==p->val)
p->next=p->next->next;
else
p=p->next;
}
return head;
}
};
一开始自己写的垃圾代码
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode* p=head;
while(p!=NULL&&p->next!=NULL){
if(p->next->val==p->val){
ListNode* m=p;
while(p->next!=NULL&&p!=NULL&&p->next->val==p->val){
p=p->next;
}
m->next=p->next;
p=p->next;
}
else
p=p->next;
}
return head;
}
};