LeetCode-82-删除排序链表中的重复元素II
题目
给定一个已排序的链表的头 head
, 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例 1:
1 | 输入:head = [1,2,3,3,4,4,5] |
示例 2:
1 | 输入:head = [1,1,1,2,3] |
提示:
- 链表中节点数目在范围
[0, 300]
内 -100 <= Node.val <= 100
- 题目数据保证链表已经按升序 排列
题解
这题用到双指针的思想,但是代码里用的next
、next.next
。
记录当前的值,如果紧邻的后面的值和当前值一样,那就删掉,这里用的cur.next = cur.next.next
。
而且用的是循环删除。因为可能当前的值也需要进行删除,所以处理的时候用的cur.next
表示当前的值,这里不要搞混。
删除的时候的循环条件是下一个值不为空,而且下一个值跟当前值一样。
整体的循环条件是cur.next != null && cur.next.next != null
。
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Excelius's World!