思路:
1、将链表中head指针移动进行元素的删除,总共有两种情况
a.head->next->val==head->val 直接将head->next 移动到head->next->next 查找出所有相同的元素的区段
b.head->next->val !=head->val 将head 移动到head->next
代码:
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *dummy=new ListNode(0);
dummy->next=head;
ListNode*p=dummy;
while(p->next)
{
ListNode*q=p->next;
while(q && q->val==p->next->val)
{
q=q->next; //先遍历完含有重复的区段
}
if(p->next->next==q) p=p->next;
else p->next=q;
}
return dummy->next;
}
};
Every step of barefoot running deserves to be recorded