龙空技术网

解决力扣的第82题:删除排序链表中的重复元素

蛋卷蛋卷呀 19

前言:

而今同学们对“在链表中删除值为x的元素”都比较关心,兄弟们都想要知道一些“在链表中删除值为x的元素”的相关内容。那么小编同时在网摘上收集了一些对于“在链表中删除值为x的元素””的相关资讯,希望各位老铁们能喜欢,你们快快来学习一下吧!

在力扣的第82题中,我们需要删除一个已经排序的链表中的重复元素,并返回已排序的链表。

大家好,我是蛋卷。今天我们来解决力扣中的第82题:删除排序链表中的重复元素。题目是这样的:给定一个已经排序的链表的头节点head,需要删除原始列表中所有重复数字的节点,只留下不同的数字,然后返回已排序的链表。

举个例子,如果原始链表中的元素是1、2、3、5,那么删除重复元素后的链表就是1、2和5。需要注意的是,由于原始链表已经排序,因此重复的元素其实是相邻的,因此可以通过一次遍历,将相邻的重复元素删除即可。

对于上面的例子,原始链表中的节点为:

1:

2:

3:

4:

5:

如果我们要删除重复元素,那么只需要将cur指针移动到相邻的节点上即可。假设当前节点为cur,那么cur.next指的是节点2,而cur.next.next指的是节点3,它们是不相同的。如果cur.next不相同,就需要将cur指针移动到cur.next,而此时cur.next指的是节点3,而cur.next.next指的也是节点3,这两个元素是相同的。因此,我们将当前节点记为x,并将cur.next从链表中删除。如果当前节点不是x,那么就需要将cur.next.next从链表中删除,直到找到不相等的节点或者当前节点为空。

具体的代码实现如下:

标签: #在链表中删除值为x的元素 #java排序链表删除重复元素 #在单链表中删除值相同的多余结点