day139—链表—删除排序链表中的重复元素(LeetCode-83)

题目描述

给定一个已排序的链表的头head删除所有重复的元素,使每个元素只出现一次。返回已排序的链表

示例 1:

输入:head = [1,1,2]输出:[1,2]

示例 2:

输入:head = [1,1,2,3,3]输出:[1,2,3]

提示:

  • 链表中节点数目在范围[0, 300]
  • -100 <= Node.val <= 100
  • 题目数据保证链表已经按升序排列

解决方案:

这段代码的核心功能是删除升序单链表中的重复节点(仅保留每个元素的唯一实例,比如原链表 1→1→2→3→3 变为 1→2→3),采用「一次遍历 + 指针跳过重复节点」的方式实现,时间复杂度O(n)、空间复杂度O(1),是该问题的经典最优解法。

核心逻辑

代码利用链表 “升序” 的特性,只需遍历一次即可识别并删除重复节点,无需额外空间:

  1. 边界处理:若链表为空(headnullptr),直接返回nullptr
  2. 遍历去重:用指针cur从链表头节点开始遍历,循环条件为cur->next不为空:
    • 若当前节点值等于下一个节点值(cur->val == cur->next->val),说明存在重复,将cur->next指向cur->next->next,跳过重复节点;
    • 若值不相等,说明无重复,将cur移动到下一个节点继续遍历;
  3. 返回结果:遍历完成后,原链表已完成去重,返回头节点head即可。

总结

  1. 核心思路:依托升序链表的特性,重复节点必相邻,通过 “跳过重复节点” 的指针操作完成去重;
  2. 关键细节:仅当节点值不相等时才移动cur,避免漏删连续重复的节点;
  3. 效率特点:一次遍历完成所有去重操作,时间O(n)、空间O(1),是升序链表去重的最优解法。

函数源码:

/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */ class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(!head) return nullptr; ListNode* cur=head; while(cur->next){ if(cur->val==cur->next->val){ cur->next=cur->next->next; } else{ cur=cur->next; } } return head; } };

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1175394.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

I2C总线在工业控制中的应用:系统学习指南

I2C总线在工业控制中的实战应用&#xff1a;从原理到系统设计你有没有遇到过这样的场景&#xff1f;一个紧凑的工业控制器&#xff0c;需要连接温度传感器、IO扩展芯片、ADC采集模块和EEPROM存储器——但主控MCU的GPIO引脚早已捉襟见肘。传统的并行接口动辄占用8~16根线&#x…

语音识别延迟高?CAM++推理速度优化实战技巧

语音识别延迟高&#xff1f;CAM推理速度优化实战技巧 1. 背景与问题分析 在实际部署说话人验证系统时&#xff0c;推理延迟是影响用户体验的关键因素。尽管 CAM 模型本身具备轻量级、高精度的优势&#xff0c;但在资源受限或并发请求较高的场景下&#xff0c;仍可能出现响应缓…

没GPU怎么跑Python3.9?云端1小时1块,5分钟部署

没GPU怎么跑Python3.9&#xff1f;云端1小时1块&#xff0c;5分钟部署 你是不是也遇到过这种情况&#xff1a;作为一名数据分析师&#xff0c;手头有个紧急项目要用 Python 3.9 的新特性处理大量数据&#xff0c;比如用更简洁的字典合并语法、更高效的类型提示优化代码结构。可…

Hunyuan翻译系统稳定性测试:长时间运行压力部署教程

Hunyuan翻译系统稳定性测试&#xff1a;长时间运行压力部署教程 1. 引言 1.1 业务场景描述 在企业级机器翻译服务中&#xff0c;模型的稳定性与持续服务能力是决定其能否投入生产环境的核心指标。Tencent-Hunyuan/HY-MT1.5-1.8B 是一款基于 Transformer 架构构建、参数量达 …

Stable Diffusion+ASR双模型对比:云端GPU3小时完成,成本降70%

Stable DiffusionASR双模型对比&#xff1a;云端GPU3小时完成&#xff0c;成本降70% 你是不是也遇到过这种情况&#xff1f;作为一家初创团队的技术负责人&#xff0c;老板让你快速验证两个AI方向&#xff1a;一个是用AI生成产品图做营销素材&#xff0c;另一个是开发方言语音…

Z-Image-Turbo横版竖版怎么选?16:9与9:16尺寸应用实战

Z-Image-Turbo横版竖版怎么选&#xff1f;16:9与9:16尺寸应用实战 1. 引言&#xff1a;图像比例选择的现实挑战 在AI图像生成的实际应用中&#xff0c;输出图像的宽高比&#xff08;Aspect Ratio&#xff09;直接影响最终内容的可用性与视觉表现力。阿里通义Z-Image-Turbo We…

通义千问2.5 vs 文心一言:指令遵循能力实战评测

通义千问2.5 vs 文心一言&#xff1a;指令遵循能力实战评测 1. 背景与评测目标 随着大语言模型在企业服务、智能助手和自动化内容生成等场景的广泛应用&#xff0c;指令遵循能力已成为衡量模型实用性的重要指标。一个优秀的语言模型不仅要具备广泛的知识覆盖和流畅的语言生成…

screen命令开机自启:服务化部署配置教程

如何让screen开机自启&#xff1f;一套真正可用的生产级服务化部署方案你有没有遇到过这样的场景&#xff1a;深夜&#xff0c;服务器重启后&#xff0c;早上一来发现那个跑了三天的数据采集脚本没了——因为没人手动启动&#xff1b;或者你在远程调试一个 Python 爬虫&#xf…

5个开源大模型镜像推荐:DeepSeek-R1免配置一键部署实战测评

5个开源大模型镜像推荐&#xff1a;DeepSeek-R1免配置一键部署实战测评 1. 引言&#xff1a;本地化大模型的实践需求与选型背景 随着大语言模型在推理、编程、数学等复杂任务中的表现不断提升&#xff0c;越来越多开发者和企业开始关注本地化部署的可能性。然而&#xff0c;主…

SGLang-v0.5.6性能优化:减少序列化开销的技巧

SGLang-v0.5.6性能优化&#xff1a;减少序列化开销的技巧 SGLang-v0.5.6 是当前大模型推理部署领域中备受关注的一个版本更新。该版本在吞吐量、延迟控制和资源利用率方面进行了多项关键优化&#xff0c;其中减少序列化开销成为提升整体性能的重要突破口。本文将深入剖析 SGLa…

opencode错误修复建议实战:真实Bug案例处理流程

opencode错误修复建议实战&#xff1a;真实Bug案例处理流程 1. 引言 1.1 业务场景描述 在现代AI驱动的开发环境中&#xff0c;开发者越来越依赖智能编码助手来提升效率。OpenCode 作为一个2024年开源的终端优先AI编程框架&#xff0c;凭借其多模型支持、隐私安全和插件化架构…

Claude Skills 的本质

你可能在各种地方看到过关于 Claude Skills 的介绍&#xff0c;但说实话&#xff0c;大部分文章看完之后你还是不知道它到底是怎么运作的。 今天我想用最真实的方式&#xff0c;带你完整走一遍 Skills 的整个流程&#xff0c;看看这个看似神秘的机制到底是怎么回事。一个命令背…

小白也能懂的中文NLP:RexUniNLU快速上手

小白也能懂的中文NLP&#xff1a;RexUniNLU快速上手 1. 引言&#xff1a;为什么我们需要通用自然语言理解工具&#xff1f; 在当今信息爆炸的时代&#xff0c;非结构化文本数据无处不在。从社交媒体评论到企业文档&#xff0c;如何高效地从中提取关键信息成为自然语言处理&am…

win10下 QUME模拟 代网络 的ARM64架构虚拟机

win10下 QUME模拟 代网络 的ARM64架构虚拟机win10下 QUME模拟 代网络 的ARM64架构虚拟机 # 创建工作目录 并cmd进入工作目录 mkdir e:\qvm cd E:\qvm# win10下载qemu安装包并安装 https://qemu.weilnetz.de/w64/qemu-w…

AI写作大师Qwen3-4B性能测试:CPU与GPU环境对比

AI写作大师Qwen3-4B性能测试&#xff1a;CPU与GPU环境对比 1. 引言 1.1 选型背景 随着大模型在内容创作、代码生成和逻辑推理等场景的广泛应用&#xff0c;如何在不同硬件条件下部署高效可用的AI服务成为开发者关注的核心问题。尤其对于中小型团队或个人开发者而言&#xff…

HY-MT1.8B部署卡算力?在线策略蒸馏技术解析与优化实践

HY-MT1.8B部署卡算力&#xff1f;在线策略蒸馏技术解析与优化实践 1. 引言&#xff1a;轻量级翻译模型的工程挑战与突破 随着多语言内容在全球范围内的快速扩散&#xff0c;高质量、低延迟的神经机器翻译&#xff08;NMT&#xff09;需求日益增长。然而&#xff0c;传统大模型…

USB-Serial Controller D在虚拟机VMware中的直通配置方法

如何让虚拟机“直通”USB转串口设备&#xff1f;一招解决 VMware 识别不到 COM 口的难题 你有没有遇到过这种情况&#xff1a; 手头一块 STM32 开发板通过 USB 转串模块连接电脑&#xff0c;想在 VMware 里的 Windows 虚拟机中用 SecureCRT 调试 Bootloader&#xff0c;结果插…

FST ITN-ZH与Python集成:API调用与二次开发指南

FST ITN-ZH与Python集成&#xff1a;API调用与二次开发指南 1. 引言 1.1 场景背景 在自然语言处理&#xff08;NLP&#xff09;的实际工程落地中&#xff0c;中文逆文本标准化&#xff08;Inverse Text Normalization, ITN&#xff09;是一项关键的预处理任务。它负责将口语…

VibeThinker-1.5B实战教程:结合LangChain构建智能代理

VibeThinker-1.5B实战教程&#xff1a;结合LangChain构建智能代理 1. 引言 1.1 学习目标 本文旨在指导开发者如何将微博开源的小参数语言模型 VibeThinker-1.5B 与主流AI应用开发框架 LangChain 相结合&#xff0c;构建具备数学推理与代码生成能力的智能代理&#xff08;Int…

OpenCode性能优化:提升AI代码生成速度3倍

OpenCode性能优化&#xff1a;提升AI代码生成速度3倍 在AI编程助手竞争日益激烈的今天&#xff0c;OpenCode 凭借其“终端优先、多模型支持、隐私安全”的设计理念&#xff0c;迅速成为极客开发者的新宠。然而&#xff0c;在实际使用中&#xff0c;尤其是在本地部署 Qwen3-4B-…