每日一题之LeetCode 82.删除排序链表中的重复元素 II
¶一、题解
同样又是一道熟悉的链表题目:题目要求将有重复的节点全部删掉!
这道题还是比较好想的:
如下图:
为了统一该链表,防止第一个节点就是重复节点导致,头结点的改变,我们使用虚拟头结点指向该头节点,实现统一操作!
- 用一个指针
p
指向当前节点,另一个指针q
指向下一个节点 - 接下来,
q
从p->next
开始,一直走到第一个与p->next
不同元素的位置,这时有两种情况:p->next->next == q
:则说明p
后面没有重复元素,直接后移p = p->next
p->next->next != q
:则说明p
后面有重复元素,则跳过这一堆重复元素,p直接指向q即可,p->next = q
- 最后返回
dummy->next
即可
时间复杂度:O(n)
空间复杂度:O(1)
¶二、AC代码
参考代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论