给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
示例 1:
输入:head = [1,1,2] 输出:[1,2]
示例 2:
输入:head = [1,1,2,3,3] 输出:[1,2,3]
提示:
- 链表中节点数目在范围
[0, 300]
内 -100 <= Node.val <= 100
- 题目数据保证链表已经按升序 排列
实战:
struct ListNode* deleteDuplicates(struct ListNode* head) {
struct ListNode* node=head;
if (head==NULL)return NULL;
while (node->next!=NULL){
if (node->val==node->next->val){
node->next=node->next->next;
}
else{
node=node->next;
}
}
return head;
}
详解:首先判断其中是否有元素,其次在进行依次判断,如果当前元素与下一个相等,则进行替换,若不等则换下一个元素。最后得到答案。