/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution
{
public:
ListNode* deleteDuplicates(ListNode* head)
{
//以下的这个解法总感觉会多出来东西
if (head == NULL || head->next == NULL)
return head;
ListNode* pre = head;
ListNode* cur = head->next;
while(cur != NULL)
{
if(pre->val != cur->val)
{
pre = cur;
cur = cur->next;
}
else
{
pre->next = cur->next;
// cur->next = NULL; //提交成功后做了这个修改,把被重复的节点指向NULL,试一把成功了。
// delete cur; //第三次提交,直接用delete也是可以的。
cur = pre->next;
}
}
return head;
}
};
刚开始提交的时候有一个错误提示,可能的原因是要判断head也不指向NULL