链表嘛我直接开码
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *cur=head;
if(!head)
{
return head;
}
while(cur->next)
{
if(cur->val==cur->next->val)
{
cur=cur->next->next; //错这了
}
else{
cur=cur->next;
}
}
return head;
}
};
错误很明显,没有考虑连续重复元素,直接判断当前值和下个节点的值相等的话,直接跳到再下个零点。。但是。。为什么执行结果
,
为什么第二个重复没有跳过去呀。。很菜。。不懂。。呜呜。。
---------------------------------------------------------------------------------------------------------------------------------正确的
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *cur=head;
if(!head)
{
return head;
}
while(cur->next)
{
if(cur->val==cur->next->val)
{
cur->next=cur->next->next;
}
else{
cur=cur->next;
}
}
return head;
}
};
路过的可不可以帮菜菜答下疑。。感激不尽