给定一个排序链表,删除所有重复的元素每个元素只留下一个。
样例
给出 1->1->2->null,返回 1->2->null
给出 1->1->2->3->3->null,返回 1->2->3->null
比较删除
排好序的比较好处理,相同的肯定是相邻出现的,只要比较当前值和下一个值就可以,如果不同,则遍历下一个,如果相同,则跳过下一个进行遍历(顺便把中间的删除掉,链表的删除就是一个链接的过程)。
ListNode * deleteDuplicates(ListNode * head) {
if(head==NULL)
return NULL;
ListNode *temp=head;
while(temp->next!=NULL)
{
if(temp->val!=temp->next->val)
{
temp=temp->next;
}
else
temp->next=temp->next->next;
}
return head;
// write your code here
}
网友评论