NC24 删除有序链表中重复的元素-II
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024?tpId=188&&tqId=38568&rp=1&ru=/activity/oj&qru=/ta/job-code-high-week/question-ranking
class Solution {
public:
/**
*
* @param head ListNode类
* @return ListNode类
*/
ListNode* deleteDuplicates(ListNode* head) {
// write code here
if(head == nullptr || head->next == nullptr)
return head;
ListNode* node = new ListNode(-1); //头结点
ListNode* pre = node; // pre 保存不同节点的前一个节点
pre->next = head;
while(head && head->next){ //比较当前节点与下一个节点
if(head->val != head->next->val) //如果不相同,向后移动
{
pre = head;
head = head->next;
}
else{ //如果不相同
int x = head->val; //记录head的值
while(head && head->val == x) //然后比较
{
head = head->next;
}
pre->next = head;
}
}
return node->next;
}
};