Leetcode面试经典150题-83.删除链表中的重复元素

news2024/9/21 21:22:31

解法都在代码里,不懂就留言或者私信

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode() {}
 *     ListNode(int val) { this.val = val; }
 *     ListNode(int val, ListNode next) { this.val = val; this.next = next; }
 * }
 */
class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        /**如果没有节点或者只有一个,就不可能有重复的,直接返回即可 */
        if(head == null || head.next == null) {
            return head;
        }
        /**如果有两个及以上的元素就有重复的可能性,定义一个变量pre和一个变量cur
        分别代表之前的变量和现在的变量,如果cur和pre的值一样,则cur是重复的,直接跳过*/
        ListNode pre = null;
        ListNode cur = head;
        /**从head开始遍历所有节点 */
        while(cur != null) {
            /**如果前面有节点并且当前节点和前面的值相等,cur直接跳下一个 */
            while( cur != null && pre != null && pre.val == cur.val) {
                cur = cur.next;
            }
            /**当前cur为第一个不重复的节点,如果前面有节点,则前面的节点next本来是指向第一个重复的节点的(如果有)
            现在改成执行最后一个重复的节点 */
            if(pre != null) {
                pre.next = cur;
            } 
            /**不管前面有没有节点,pre都要指向现在的节点,然后cur指向下一个 */
            pre = cur;
            cur = cur == null? null : cur.next;
        }
        return head;
    }
}

这里的空间多是因为我使用了一个ListNode类型的临时变量,你可以改成int类型的,想改就自己改吧,我觉得挺好的

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

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

相关文章

Linux-目录结构和Vim编辑器

目录 Linux目录结构 基本介绍 ​编辑 具体的目录结构 Vim编辑器 vi和vim的基本介绍 vi和vim常用的三种模式 正常模式 插入模式 命令行模式 各种模式的相互切换 vim快捷键盘图 粘贴与删除 拷贝当前行并粘贴 拷贝多行并粘贴 删除当前行 删除多行 Vim的退出保存…

ARM的寄存器组织

cpu读写内存 读:(地址)内存的值拷贝到寄存器 写:将寄存器的值拷贝到内存 R0-R12:通用寄存器 sp:栈区的栈顶的地址 lr:保存返回地址 比如函数调用处的下一条指令的地址 pc:程序计数器…

【机器学习】梯度提升和随机森林的概念、两者在python中的实例以及梯度提升和随机森林的区别

引言 梯度提升(Gradient Boosting)是一种强大的机器学习技术,它通过迭代地训练决策树来最小化损失函数,以提高模型的预测性能 随机森林(Random Forest)是一种基于树的集成学习算法,它通过组合多…

网关桥梁:modbus 转 profinet 网关中频加热机的智能融合之旅

一、项目序章:金属热处理的智慧曙光在金属锻造的辉煌舞台上,中频感应加热电源以其高效节能、精准控温的卓越才艺,成为了热处理、焊接与成型艺术中不可或缺的幕后英雄。然而,随着工业自动化的浪潮汹涌而至,如何让这位英…

ig运营事半功倍千万做到这“四不要”

在运营品牌Ins的时候,想要把账号做活跃,就不能做单一的内容,一定要多元化分配内容,下面这4个不要做,一定请记住! 1. 不要只是介绍您的产品。否则,你的内容就会变得单调、乏味。观众喜欢阅读故事…

Java中的TCP/IP与UDP协议Socket入门

Socket: 简单地说Socket就相当于是一家快递公司包括: 寄件人: 1.包裹放快递盒里(数据打包:DatagramSocket) 2.运输快递(发送数据) 3.付钱回家(释放资源)…

1.初识ChatGPT:AI聊天机器人的革命(1/10)

引言 在当今的数字化世界中,人工智能(AI)正以其独特的方式重塑我们的生活和工作。其中,AI聊天机器人作为人机交互的前沿技术,已经成为企业与客户沟通、提供个性化服务的重要工具。这些机器人通过模拟人类的对话方式&a…

Android 存储之 SharedPreferences 框架体系编码模板

一、SharedPreferences 框架体系 1、SharedPreferences 基本介绍 SharedPreferences 是 Android 的一个轻量级存储工具,它采用 key - value 的键值对方式进行存储 它允许保存和读取应用中的基本数据类型,例如,String、int、float、boolean …

RKNPU2项目实战【1】 ---- YOLOv5实时目标分类

目录 目标 一、python接口下实现yolov5模型在开发板上的部署 1.1 在rknntoolkit2环境下模拟实现yolov5模型在RK3588开发板上的推理测试 1.2 在rknntoolkit2环境下实现模型在RK3588开发板上的连板推理测试(模型运行在NPU上) 1.3 在rknntoolkitlite2环…

使用llamaindexLLM大模型构建一个可离线可在线可异步扩展信息的RAG智能问答系统

之前对一件事很好奇,为什么去年训练的大模型可以回答今天的新闻内容。答案是使用了知识扩展系统。基本原理是把参考答案和问题一同提给大模型,给他充分的参考信息做回复编辑。 本文教你完成离线版本的智能问答系统搭建。 最近在疯狂找下家,本人精通图形渲染和ai,求捞啊! …

没参加会议,还要 30000 字的会议材料写总结?用好 AI工具,30 分钟堵住领导的嘴

前段时间本来要参加总公司的重要会议,但由于临时出差错过了。 分公司老总,给了我 10 份会议材料内容,让我学习,并在节后梳理出要点。 结果,一过节就全都给忘记了,咋办?听说最近Kimi出了新玩法…

k8s 部署 jenkins【详细步骤】

文章目录 部署介绍部署步骤第 1 步:创建 namespace第 2 步:创建 ServiceAccount第 3 步:创建持久卷第 4 步:创建 Deployment第 5 步:创建 Service第 6 步:浏览器访问 Jenkins第 7 步:修改默认时区参考⭐ 本文目标:在 k8s 集群中部署一个 jenkins。 部署介绍 🚀 在 K…

内推|京东|后端开发|运维|算法...|北京 更多岗位扫内推码了解,直接投递,跟踪进度

热招岗位 更多岗位欢迎扫描末尾二维码,小程序直接提交简历等面试。实时帮你查询面试进程。 安全运营中心研发工程师 岗位要求 1、本科及以上学历,3年以上的安全相关工作经验; 2、熟悉c/c、go编程语言之一、熟悉linux网络编程和系统编程 3、…

coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

为什么企业数据资产入表实践少?

​在财政部会计司发布暂行规定之后,数据资产化或者数据要素市场进入加速期。 会计司在22年12月1号首先发布征求意见,经过半年时间迅速迭代后,正式发布了暂行规定。文件第8条规定了国家实行统一的会计制度,任何相关的企业组织都必须…

【网络安全】调试模式获取敏感数据

未经许可,不得转载。 文章目录 漏洞原因步骤PHPPythonASPNode.js漏洞原因 当开发者忘记在生产环境中禁用调试模式,应用在发生错误时,可能会输出详细的错误信息。这些错误信息(比如“error title”或堆栈跟踪)通常包含了应用程序的内部结构、配置甚至数据库连接信息等敏感…

Windows自动化程序开发指南

自动化程序的概念 “自动化程序”指的是通过电脑编程来代替人类手工操作的一类程序或软件。这类程序具有智能性高、应用范围广的优点,但是自动化程序的开发难度大、所用技术杂。 本文对自动化程序开发的各个方面进行讲解。 常见的处理对象 自动化程序要处理的对…

公认最好的跑步耳机分享,选购骨传导运动耳机需注意的五大陷阱!

跑步,不仅是一种锻炼身体的方式,更是一种生活态度的体现。它让我们在汗水中释放压力,在节奏中感受生命的律动。而音乐,作为跑步时的完美伴侣,能够激发我们的运动潜能,让我们的跑步之旅更加愉悦。因此&#…

软件测试自动化面试题(含答案)

1.如何把自动化测试在公司中实施并推广起来的? 选择长期的有稳定模块的项目 项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robot framework两种。 搭建自动化测试框架,在项目中逐步开展自动化。 把该项目的自动化…

示波器基础知识汇总(2)

系列文章目录 1.元件基础 2.电路设计 3.PCB设计 4.元件焊接 5.板子调试 6.程序设计 7.算法学习 8.编写exe 9.检测标准 10.项目举例 11.职业规划 送给大学毕业后找不到奋斗方向的你(每周不定时更新) 中国计算机技术职业资格网 上海市工程系列计算机专…