
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思路:要删除一个排序链表的重复元素,重复元素都是挨着的,还是用两个指针来解决问题,一个指针用来查找重复的元素,一个指针用来重新串联起一个新的链表。
ListNode* deleteDuplicates(ListNode* head)
{
if(head==NULL) return head;
ListNode* cur,*p;
cur=p=head;
while(cur)
{
if(p->val!=cur->val)
{
p->next=cur;
p=cur;
}
cur=cur->next;
}
p->next=NULL;
return head;
}