82. 删除排序链表中的重复元素 II
LeetCode题目:82. 删除排序链表中的重复元素 II
思路1:模拟
- 设置三个指针如下:
pre ↓ 1->2->3->3->3->3->4->4->5 ↑ ↑ ppre cur
ppre
指针:指向已经完成遍历的链表的最后一个元素。pre
指针:指向ppre
的下一个元素。cur
指针:从pre->next
开始,判断cur->val
是否和pre->val
相等,如果相等,cur
不断向下,直到不相等。此时,更新三个指针的值即可。
- 更新时问题:
- 如果是下面这种情况,即刚开始时
cur-val != pre->val
,那么直接更新三个指针即可。 - 如果在遍历过程中
cur == nullptr
,说明是类似这种情况:1->2->2->2
,那么此时,直接ppre->next = nullter
然后返回即可。
- 如果是下面这种情况,即刚开始时