大家好,我是星恒
今天的题目是昨天题目的进化题,他对链表的删除加深了理解。最重要的是学会了对循环中的特殊部分的处理,还有设置虚拟节点的情况
好了,话不多说,我们直接开始
题目:leetcode 82
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例:
示例 1:
[外链图片转存中…(img-qsrtHDAg-1705333692489)]
输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]
示例 2:
[外链图片转存中…(img-SIQvpZrX-1705333692490)]
输入:head = [1,1,1,2,3]
输出:[2,3]
提示:
- 链表中节点数目在范围 [0, 300] 内
- -100 <= Node.val <= 100
- 题目数据保证链表已经按升序 排列
分析:
由于我们是要删除,所以我们需要知道删除节点的前一个节点。我们遍历该链表,当遇到当前值的下一个值和下下个值相同时,把他们删除,并记录该值,然后看后面的情况
题解: