题目:
给定一个已排序的链表的头 head
, 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。
解题
由于给定的链表是排好序的,因此重复的元素在链表中出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。本题较为简单,笔者不做过多解释,代码如下:
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode* current = head;
if(current==nullptr){
return head;
}
while(current->next!=nullptr){
int a = current->val;
int b = current->next->val;
if(a==b){
current->next = current->next->next;
}
else{
current = current->next;
}
}
return head;
}
};
特别注意:在进行链表操作时,一定要对ListNode是否为空以及ListNode->next是否为空进行条件判断,以防报错。
标签:current,head,元素,ListNode,编程,next,链表,排序 From: https://blog.csdn.net/qq_43287713/article/details/144908214