思路:第一个节点先和后一个节点比较,如果相同,cur1不变,cur2走向后一个节点,cur1再cur2比较,相同则cur2走向后一个节点,cur1和cur2再次比较,不相同,则cur1走到cur2的位置,cur2走到后一个节点的位置,再次进行比较,如果cur2等于NULL,则走到链表的末尾。
struct ListNode* deleteDuplicates(struct ListNode* head ) {
// write code here
struct ListNode*cur1 = head;
struct ListNode*cur2 =head->next;
if(head == NULL)
return head;
while(cur2)
{
if(cur1->val == cur2->val)
{
cur1->next = cur2->next;
cur2 = cur2->next;
}
else {
cur1 = cur2;
// if(cur2)
cur2 = cur2->next;
}
}
return head;
}