题目:
存在一个按升序排列的链表,给你这个链表的头节点 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){
if(head == NULL)
return NULL;
struct ListNode* curPre = head;
struct ListNode* cur = head->next;
while(cur != NULL){
if(cur->val != curPre->val){
curPre->next = cur;
curPre = cur;
}
cur = cur->next;
}
curPre->next = NULL;
return head;
}