leetcode算法83.删除排序链表中的重复元素_给定已排序链表的标题,删除所有重复项,使每个元素只出现一次。返回已排序的链表。_旷世奇才李先生的博客-程序员资料

技术标签: 算法  链表  leetcode  



哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!

【学无止境小奇】的创作宗旨:每一条命令都亲自执行过,每一行代码都实际运行过,每一种方法都真实实践过,每一篇文章都良心制作过。

【学无止境小奇】的博客中所有涉及命令、代码的地方,除了提供图片供大家参考,另外会在图片下方提供一份纯文本格式的命令或者代码方便大家粘贴复制直接执行命令或者运行代码。

如果你对技术有着浓厚的兴趣,欢迎关注【学无止境小奇】,欢迎大家和我一起交流。

️️️感谢各位朋友接下来的阅读️️️

一、leetcode算法

1、删除排序链表中的重复元素

1.1、题目

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

示例 1:

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

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

1.2、思路

思路一:由于链表是排序好的,那么我们只需要从第一个开始,让他们两个之间相互比较,假如第一个和第二个相等,那么就把第一个节点的next指向第三个节点的位置,这样重复的第二个就被删掉了,直到遍历完整个链表。

1.3、答案

在这里插入图片描述

class Solution {
    
    public ListNode deleteDuplicates(ListNode head) {
    
        if(head == null){
    
            return head;
        }
        //定义一个游标,用来判断链表是否遍历完
        ListNode pre = head;
        //判断游标下一个是否还有,如果没有证明链表遍历完毕
        while(pre.next != null){
    
            //判断当前节点的值和下一个节点的值是否相等
            if(pre.val == pre.next.val ){
    
                //如果相等则将当前值的下一个指向,指向当前节点的下下一个,也就是说如果原来当前节点1指向2,2指向3,
                //那么现在1直接指向3,把中间的2去掉,因为2和1的值是相等的
                pre.next = pre.next.next;
            }else{
    
                //如果不相等,则将pre指向下一个节点。
                pre = pre.next;
            }
        }
        return head;
    }
}

复杂度分析

时间复杂度:O(n),其中 n 是链表的长度。

空间复杂度:O(1)。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_44096133/article/details/122978857

智能推荐

Ant的简介与基础知识_linux中ant_長安꧔ꦿ的博客-程序员资料

Ant的简介与基础知识1. Ant是什么?​ Ant相当于Linux环境下的shell脚本,只不过是xml文档来编写的。我们知道,在Linux环境中,可以通过编写shell脚本,封装一系列繁琐而日常需要经常重复的工作。在需要进行这些操作时,只需要运行这个脚本就可以批处理这些操作了。Ant脚本也是一样,只不过它一般是为了方便Java项目的编译、运行、测试、打包等工作服务的。​ 日常工作中,一个项目除了编码外,还需单元测试、集成测试、系统测试,测试过程中可能会不断修改代码,然后在测试。这样重复而繁琐的

集一众大佬的精华所做关于vscode同时配置c/c++和python的调试脚本_vscode同时写python和c++_伏虎山真人的博客-程序员资料

该文章是我的经验总结,网集c站大佬关于c/c++和python配置的文章最后成功配置出了c/c++和python的调试设置的json格式文件直接上代码首先是launch.json文件1.建立launch.json(不知道怎么建?没关系请按f5)2.看着vscode默认的文件,不要急不要慌,小白不需要知道怎么多,直接对照我的文件操作,就算操作错误,直接删了重新来{ // 使用 I...

php在线解密,zend在线解密_dezend 在线_小人物9527的博客-程序员资料

PHP在线解密,支持Zend解密,混淆解密。官方网站 http://dezend.qiling.org/ 云路php解密,找源码解密,小猪php解密,phpjm加密解密 。    ...

Centos6、Centos7 查询开机启动服务_centos6 查看系统启动服务_人生匆匆的博客-程序员资料

一、centos6查看开机自启服务chkconfig sshd --listchkconfig 服务 --list二、centos7查看开机自启服务1.systemctl list-unit-files 查看启动项左边是服务名称,右边是状态,enabled是开机启动,disabled是开机不启动systemctl list-unit-files查看sshd是否开机自启,...

分享按键精灵中使用大漠插件做后台脚本_按键精灵大漠插件使用教程_豪猪不挡道的博客-程序员资料

前言– 也许大家在玩手游的时候都曾碰到过诸如 刷装备,刷怪升级的问题,除了充钱而只有那些重复性的东西才能让你变强,我也不例外。大学期间曾迷恋上阴阳师这个游戏。期间曾网上各种搜索自动刷装备的脚本,想以此来让自己轻松一些。不过免费的终究只是免费,被检测抓进三天小黑屋也是见怪不怪了。后来,偶然搜到了一个脚本群。得到了一些启发,也是因为自己电脑已经带不动作者的脚本了,才放弃使用。后来,在同学的帮助下, ...

Linux 性能优化的全景指南,可能都在这里了,建议收藏~_公众号:ITIL之家的博客-程序员资料

更多专业文档请访问 www.itilzj.comLinux 性能优化性能优化性能指标高并发和响应快对应着性能优化的两个核心指标:吞吐和延时应用负载角度:直接影响了产品终端的用户体验系统资源...

随便推点

Cryptography - Chameleon Hash_刘巍然-BUAA的博客-程序员资料

题注这接近10天的时间一直忙着写论文,技术博客也就有一个多星期没有更新了。今天把“初定稿”版本交给了Boss,自己也终于稍微松口气,可以更新一下技术博客啦,这必须得普天同庆啊!最近攒的需要更新的技术博客也比较多,我得一个个写,各位看官还请静待更新啊。第一个需要和大家谈谈的是一个密码学原型函数(Cryptographic Primitive)。本来呢,自己是做密码学的,这种东西写出来看的人也

win10修改ntp服务器地址,win10怎么设置ntp服务器地址_白头如新倾盖如故的博客-程序员资料

win10怎么设置ntp服务器地址 内容精选换一换以NTP服务器、DNS服务器的操作系统均为SUSE为例:登录Linux弹性云服务器。执行以下命令,切换至root用户。sudo su -sudo su -执行以下命令,编辑ntp.conf文件。vim /etc/ntp.confvim /etc/ntp.conf添加以下语句,配置NTP服务器。server NTP服务器域名或IP地址示例:有,该NT...

各个大数据相关框架启动与停止的命令_东心十的博客-程序员资料

zookeeper:三个节点上都执行: zkServer.sh start 启动单个节点的zk服务查看zk进程是否存在:jps ,发现一个进程 QuorumPeerMainzkServer.sh status 查看该zk服务器是follower还是leader。hdfs:start-dfs.shstop-dfs.sh查看hdfs进程是否存在:jpsbin/hdfs zk...

mybatis手动切换数据库_mybatis多数据库切换,(动态数据源)。_达布斯的博客-程序员资料

项目中将一个库的某些标的某些数据保存到另一个库。使用spring的aop编程动态切换数据源,代码如下,以备下次用到!1.先将两个数据库连接,创建两个数据源,交于spring管理!class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">class="com.alibaba....

【linux】bg、fg、jobs命令的学习,以及ctrl z/c、nohup和&_程序边界的博客-程序员资料

文章目录一、引入二、命令学习作业与进程的区别与联系:nohup 和 & 的区别和联系fg命令_Linux fg 命令用法详解:将后台作业放到前台终端运行bg命令_Linux bg 命令用法详解:用于将作业放到后台运行jobs命令_Linux jobs 命令用法详解:显示Linux中的任务列表及任务状态一、引入这两个命令的学习是在使用 vim 不小心ctrl + z了,然后百度查到了fg命令。。。二、命令学习Linux下的fg和bg命令是进程的前后台调度命令,即将指定号码(非

资料 | 2021年开源SLAM算法集锦_3D视觉工坊的博客-程序员资料

本文汇总2021年公布的SLAM相关工作,后台回复“2021SLAM”可获得本文全部论文。1.TANDEM:Tracking and Dense Mapping in Real-time ...

推荐文章

热门文章

相关标签