1.题目
给定已排序的链表,删除所有重复节点,使每个元素只出现一次。
示例:
Input: 1->1->2->3->3 Output: 1->2->3
2.思路
cur 指向当前节点
如果 cur 与 cur的下一个节点值相同。cur的next指针指向cur->next->next, 相当于将cur->next从链表中剔除掉了。
如果 cur 与 cur的下一个节点值不相同 cur指向下一个节点。
3.实现
class Solution {
public:
ListNode* deleteDuplicates(ListNode* head) {
ListNode* cur = head;
while(cur != nullptr && cur->next != nullptr)
{
if(cur->val == cur->next->val)
cur->next = cur->next->next;
else
cur = cur->next;
}
return head;
}
};