存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
示例 1: 输入:head = [1,1,2] 输出:[1,2] 示例 2: 输入:head = [1,1,2,3,3] 输出:[1,2,3]
struct ListNode* deleteDuplicates(struct ListNode* head){
if(head==NULL||head->next==NULL)
{
return head;
}
struct ListNode* p=head;
struct ListNode* q=head->next;
while(q!=NULL)
{
if(p->val==q->val)
{
p->next=q->next;
free(q);
q=p->next;
}
else
{
p=q;
q=q->next;
}
}
return head;
}



