LeetCode中怎么删除排序链表中的重复元素
发表于:2025-02-02 作者:千家信息网编辑
千家信息网最后更新 2025年02月02日,LeetCode中怎么删除排序链表中的重复元素,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述:给定一个排序链表,删除所有重复的元
千家信息网最后更新 2025年02月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安全错误
数据库的锁怎样保障安全
mtk软件开发
江苏gps网络时间服务器配置
大旗网络安全海报
考勤管理系统 数据库设计
医院可以做无盘服务器吗
信息网络安全通报机制
叶子解说我的世界服务器生存
数据库表设计英文
软件开发责任的问题
网络安全等保什么企业可做
社区网络安全防范措施
发展和网络安全模式是什么
网络技术讲解稿和ppt
服务器收不到压力怎么办
软件开发会被人工智能代替吗
数据库被人删了一条日志
湖南数据网络技术推广
数据库期末复习题txt
遗传学课件软件开发
网络技术工程师华为认证
突击步枪数据库
天下三退魔服务器
数据库中的模式的定义
寒食翻译软件开发
网络安全题目答案
计算机网络技术分配端口
四川省网络安全应急指挥中心在哪
湖北省潜江市dns服务器
能挂游戏的服务器
php 缓存数据库