删除一个元素的情况比较简单,使用两个指针pre和cur,当pre和cur指向的数值val相等时,代表出现了重复节点,删除之
考虑两个特殊情况,第一个是head为空节点,第二个是head->next为空节点
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
int count = 1;
if(head == NULL || head->next == NULL)
return head;
ListNode* pre = head;
ListNode* cur = head->next;
while(cur != NULL){
if(pre->val == cur->val){
ListNode* delNode = cur;
cur = cur->next;
pre->next = cur;
delete delNode;
}
else{
pre = pre->next;
cur = cur->next;
}
}
return head;
}
};