

class Solution {
public:
/**
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* deleteDuplicates(ListNode* head) {
// write code here
if(head == nullptr || head->next == nullptr)
return head;
ListNode* node = new ListNode(-1); //头结点
ListNode* pre = node; // pre 保存不同节点的前一个节点
pre->next = head;
while(head && head->next){ //比较当前节点与下一个节点
if(head->val != head->next->val) //如果不相同,向后移动
{
pre = head;
head = head->next;
}
else{ //如果不相同
int x = head->val; //记录head的值
while(head && head->val == x) //然后比较
{
head = head->next;
}
pre->next = head;
}
}
return node->next;
}
};