leecode #83(简单)链表去重
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode() : val(0), next(nullptr) {}
* ListNode(int x) : val(x), next(nullptr) {}
* ListNode(int x, ListNode *next) : val(x), next(next) {}
* };
*/
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode *i=head;
while(i!=NULL&&i->next!=NULL) //最好这样写否则会说while中试图写空指针leecode不 //让过(但编译器不报错)
{
if(i->val==i->next->val)
{
i->next=i->next->next;
}
else //去重操作后i先不移动,再看一下有无重复,如果直接移动那么连着三个一 //样的就去不了重
{
i=i->next;
}
}
return head;
}
};
//总结:这个题我做了很久,之前写了一个虚拟头节点结果是[0,0,0]这种就跑步过去(不知道为啥).