目录
一、问题描述
在一个排序的链表中,存在重复的节点,请删除该链表中重复的节点,重复的节点不保留。
数据范围
链表中节点 val 值取值范围 [0,100]。
链表长度 [0,100]。
样例1
输入:1->2->3->3->4->4->5
输出:1->2->5
样例2
输入:1->1->1->2->3
输出:2->3
二、解题
1.解题思路
2.代码
class Solution {
public:
ListNode* deleteDuplication(ListNode* head) {
// 创建虚拟头结点
auto dummp = new ListNode(-1);
dummp -> next = head;
auto p = dummp, q = dummp->next;
while(p->next)
{
while(q->next&&p->next->val==q->next->val) q = q->next;
if(p->next == q) p = q;
else p->next = q->next;
}
return dummp->next;
}
};