题目 存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除所有重复的元素,使每个元素 只出现一次 。
返回同样按升序排列的结果链表。
提示:
1. 链表中节点数目在范围 [0, 300] 内 2. -100 <= Node.val <= 100 3. 题目数据保证链表已经按升序排列
代码一
struct ListNode* deleteDuplicates(struct ListNode* head){
struct ListNode *p,*h;
h=head;
while(h!=NULL)
{
p=h->next;
while(p!=NULL)
{
if(p->val == h->val)
h->next=p->next;
p=p->next;
}
h=h->next;
}
return head;
}
代码二
struct ListNode* deleteDuplicates(struct ListNode* head){
struct ListNode *h;
if(head==NULL)
return head;
h=head;
while(h->next!=NULL)
{
if(h->val == h->next->val)
{
h->next=h->next->next;
}
else
{
h=h->next;
}
}
return head;
}
|