1.描述:给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null
,返回 1->2->null
给出 1->1->2->3->3->null
,返回 1->2->3->null
3.代码:
ListNode *deleteDuplicates(ListNode *head) {
ListNode *p=head;
ListNode *q=NULL;
while(p!=NULL)
{
if(q!=NULL&&q->val==p->val)
{
q->next=p->next;
p=q->next;
}
else
{
q=p;
p=q->next;
}
}
return head;
}
4.感想:尽量避免用原链表的节点而使用新建指针代替的方式似乎能够避免很多麻烦