LeetCode中怎么删除排序链表中的重复元素
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,LeetCode中怎么删除排序链表中的重复元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述:给定一个排序链表,删除所有重复的元
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
网络技术应用选修课本
北京网络安全中心张捷
上门洗车软件开发公司
手机网络安全管控
数据库二进制文件
龙岩技师网络安全
网宿网络技术有限公司
安阳市网络安全日活动
越权删除数据库被判多久
早期的媒体服务器解决方案
串口服务器能连网线吗
想做网络安全从哪方面入手
数据库落库跟时区有关系吗
有网站的服务器网络安全
数据库视图的基本定义
关系数据库的专门关系运算
中国台湾开源软件开发技术
查询网页服务器地址
服务器里用装安全软件吗
山东大学生网络安全知识竞赛
数据库应用技术模拟试题2
数据库常用语句读法
西南大学继续教育数据库技术
设置联想服务器管理接口
网络安全人员招聘条件
滨州仓储库存软件开发
都江堰市网络安全保卫大队
软件开发质量保证大纲
洛宁软件开发定制
miit网络安全与云管理