LeetCode中怎么删除排序链表中的重复元素
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,LeetCode中怎么删除排序链表中的重复元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述:给定一个排序链表,删除所有重复的元
千家信息网最后更新 2026年11月02日LeetCode中怎么删除排序链表中的重复元素
LeetCode中怎么删除排序链表中的重复元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
题目描述:
给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。
示例 1:
输入: 1->1->2
输出: 1->2
示例 2:
输入: 1->1->2->3->3
输出: 1->2->3
思路分析:
这是一个简单的问题,仅测试你操作列表的结点指针的能力。由于输入的列表已排序,因此我们可以通过将结点的值与它之后的结点进行比较来确定它是否为重复结点。如果它是重复的,我们更改当前结点的 next 指针,以便它跳过下一个结点并直接指向下一个结点之后的结点。
复杂度分析
时间复杂度:O(n),因为列表中的每个结点都检查一次以确定它是否重复,所以总运行时间为 O(n),其中 n 是列表中的结点数。
空间复杂度:O(1),没有使用额外的空间。
Python实现
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def deleteDuplicates(self, head: ListNode) -> ListNode:
# 快慢指针
if not head:
return None
fast, slow = head, head
while fast:
if fast.val != slow.val:
slow.next = fast
slow = slow.next
fast = fast.next
slow.next = None
return head
java实现:
public ListNode deleteDuplicates(ListNode head) {
ListNode current = head;
while (current != null && current.next != null) {
if (current.next.val == current.val) {
current.next = current.next.next;
} else {
current = current.next;
}
}
return head;
}
另一个版本的实现:
class Solution {
public ListNode deleteDuplicates(ListNode head) {
if(head==null){
return head;
}
ListNode dummhead=new ListNode(0);
dummhead.next=head;
ListNode cur=head;
ListNode last=head.next;
while(last!=null){
if(cur.val==last.val){
ListNode tmp=null;
tmp=last.next;
cur.next=tmp;
last=tmp;
}else{
cur=last;
last=last.next;
}
}
return dummhead.next;
}
}
看完上述内容,你们掌握LeetCode中怎么删除排序链表中的重复元素的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
结点
元素
排序
复杂
复杂度
指针
问题
输入
内容
方法
时间
更多
示例
空间
分析
输出
束手无策
为此
原因
可以通过
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
深圳九邦互联网科技有限公司
山东特亿宝互联网科技有限公司
高科技互联网
金融科技创新监管互联网金融
为想互联网科技
以房互联网科技
碳银互联网科技
南京欣网互联网科技
智慧科技互联网
多迪互联网科技有限公司
中国最先进互联网科技公司
云创客互联网科技公司
昭通云南众福互联网科技有限公司
青岛科技大学互联网大赛研究生
互联网科技与大数据专业
互联网科技和信息
中和天地互联网科技有限公司
启辰互联网科技
平安好医生打造互联网科技医疗
每日互联网科技新闻
凡科互联网科技
润盈互联网科技
人人互联网科技是培训
成都仁贤领冠互联网科技有限公司
温州喔噻互联网科技有限公司
栖莱科技互联网股份有限公司
威龙国际互联网科技公司
互联网相关科技技术
信承诺互联网科技有限公司
福州德业互联网科技