【 删除排序链表中的重复元素】
给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:
输入:head = [1,1,2] 输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3] 输出:[1,2,3]
话不多说代码如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */ struct ListNode* deleteDuplicates(struct ListNode* head){ if (!head) return head; struct ListNode *p; p=head; while (p->next!=NULL){ //判断下一个结点是否为空 if (p->next->val==p->val) { p->next=p->next->next; //p指向隔着的下一个 } else{ p=p->next; } } return head; }