思路
定义一个节点指针p并让它指向头结点,用该指针节点的数字与p的next的节点数字比较,如果相同,则p所在节点的next指向p的next的next,如果不同,则p后移。重复以上步骤,知道p或者p的next为空。(next为节点的指针域)
代码
/**
* 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){
ListNode *p=head;
while(p&&p->next)
{
if((p->next)->val==p->val)
p->next=(p->next)->next;
else
p=p->next;
}
return head;
}
};