当前位置: 首页 > news >正文

算法四十天-删除排序链表中的重复元素

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

题目要求

在这里插入图片描述

解题思路

一次遍历
由于给定的链表是排好序的,因此重复的元素在链表中的出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。
具体地,我们从指针cur指向链表的头节点,随后开始对链表进行遍历。如果cur.val == cur.next.val,可以直接将cur后移一位,移除值相同的链表。
当遍历完整这个链表时,返回链表的头节点就可以了

代码

# 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 or not head.next:return headcur = headwhile cur.next:if cur.val == cur.next.val:cur.next = cur.next.nextelse:cur = cur.nextreturn head

复杂度分析

时间复杂度: O ( N ) O(N) O(N)
空间复杂度: O ( 1 ) O(1) O(1)

相关文章:

算法四十天-删除排序链表中的重复元素

删除排序链表中的重复元素 题目要求 解题思路 一次遍历 由于给定的链表是排好序的,因此重复的元素在链表中的出现的位置是连续的,因此我们只需要对链表进行一次遍历,就可以删除重复的元素。 具体地,我们从指针cur指向链表的头节…...

Linux-等待子进程

参考资料:《Linux环境编程:从应用到内核》 僵尸进程 进程退出时会进行内核清理,基本就是释放进程所有的资源,这些资源包括内存资源、文件资源、信号量资源、共享内存资源,或者引用计数减一,或者彻底释放。…...

【LeetCode热题100】【二叉树】二叉树的最大深度

题目链接:104. 二叉树的最大深度 - 力扣(LeetCode) 最大深度等于左子树的最大深度和右子树的最大深度中的较大者加一 class Solution { public:int maxDepth(TreeNode *root) {if (!root)return 0;return max(maxDepth(root->left), max…...

想做产品经理,应该选择什么专业?

产品经理作为互联网公司的核心职位,一直以来备受关注。随着互联网的不断发展,产品经理的需求也越来越高,很多人都想要了解哪些专业适合做产品经理。本文将为大家介绍几个适合做产品经理的专业。 1、心理学相关专业 C端产品工作的本源&#x…...

[机器学习Day 1~3

[机器学习]Day 1~3 数据预处理第1步:导入库第2步:导入数据集第3步:处理丢失数据第4步:解析分类数据创建虚拟变量 第5步:拆分数据集为训练集合和测试集合第6步:特征量化 简单线性回归模型第一步:…...

Day106:代码审计-PHP原生开发篇文件安全上传监控功能定位关键搜索1day挖掘

目录 emlog-文件上传&文件删除 emlog-模板文件上传 emlog-插件文件上传 emlog-任意文件删除 通达OA-文件上传&文件包含 知识点: PHP审计-原生开发-文件上传&文件删除-Emlog PHP审计-原生开发-文件上传&文件包含-通达OA emlog-文件上传&文件…...

数码视讯Q7盒子刷armbian遇到的坑之二

继续,nand的q7 搜遍全网,这个盒子能用的安卓映像有两个,一个本站付费下载的那个,另一个是20191218-Q7-nand-4.4.2-root-twrp-Milton这个映像(具体地址自己搜索吧)。第一个需要license,需要自己…...

vue2 使用vue-org-tree demo

1.安装 npm i vue2-org-tree npm install -D less-loader less安装 less-loader出错解决办法,直接在package.json》devDependencies下面加入less和less-loader版本,然后执行npm i ,我用的nodejs版本是 16.18.0,“webpack”: “^4…...

【数据结构】考研真题攻克与重点知识点剖析 - 第 7 篇:查找

前言 本文基础知识部分来自于b站:分享笔记的好人儿的思维导图与王道考研课程,感谢大佬的开源精神,习题来自老师划的重点以及考研真题。此前我尝试了完全使用Python或是结合大语言模型对考研真题进行数据清洗与可视化分析,本人技术…...

【数仓】DataX 通过SpringBoot项目自动生成 job.json 文件

相关文章 【数仓】基本概念、知识普及、核心技术【数仓】数据分层概念以及相关逻辑【数仓】Hadoop软件安装及使用(集群配置)【数仓】Hadoop集群配置常用参数说明【数仓】zookeeper软件安装及集群配置【数仓】kafka软件安装及集群配置【数仓】flume软件安…...

注解式 WebSocket - 构建 群聊、单聊 系统

目录 前言 注解式 WebSocket 构建聊天系统 群聊系统(基本框架) 群聊系统(添加昵称) 单聊系统 WebSocket 作用域下无法注入 Spring Bean 对象? 考虑离线消息 前言 很久之前,咱们聊过 WebSocket 编程式…...

无线游戏手柄的测试(Windows11系统手柄调试方法)

实物 1、把游戏手柄的无线接收器插入到电脑usb接口中 2、【控制面板】----【查看设备和打印机】 3、【蓝牙和其它设备】--【更多设备和打印机设置】 4、鼠标右键【游戏控制器设置】 5、【属性】 6、【测试】(每个按键是否正常) 7、【校准】(…...

计算机的各种转换

一、存量容量的转换 特别注意:1 B 8 bit 转换为:1024 2(10) 括号中的数字为2的指数(即多少次方) 1KB2(10)B1024B; 括号中的数字为2的指数(即多少次方) 1MB2(10)KB1024KB2(20)B; 1GB2(10)MB1024MB2(3…...

Git分布式版本控制系统——Git常用命令(一)

一、获取Git仓库--在本地初始化仓库 执行步骤如下: 1.在任意目录下创建一个空目录(例如GitRepos)作为我们的本地仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 如果在当前目录中看到.git文件夹&#x…...

【Node.js】短链接

原文链接:Nodejs 第六十二章(短链接) - 掘金 (juejin.cn) 短链接是一种缩短长网址的方法,将原始的长网址转换为更短的形式。短链接的主要用途之一是在社交媒体平台进行链接分享。由于这些平台对字符数量有限制,长网址可…...

详解 Redis 在 Centos 系统上的安装

文章目录 详解 Redis 在 Centos 系统上的安装1. 使用 yum 安装 Redis 52. 创建符号链接3. 修改配置文件4. 启动和停止 Redis 详解 Redis 在 Centos 系统上的安装 1. 使用 yum 安装 Redis 5 如果是Centos8,yum 仓库中默认的 redis 版本就是5,直接 yum i…...

C语言 | Leetcode C语言题解之第17题电话号码的字母组合

题目: 题解: char phoneMap[11][5] {"\0", "\0", "abc\0", "def\0", "ghi\0", "jkl\0", "mno\0", "pqrs\0", "tuv\0", "wxyz\0"};char* digits…...

wordpress全站开发指南-面向开发者及深度用户(全中文实操)--wordpress中的著名循环

wordpress中的著名循环 首先,在深入研究任何代码之前,我们首先要确保我们有不止一篇博客文章可以工作。因此,我们要去自己的wordpress站点,从侧边栏单机Posts(文章),进行创建 在执行代码的时候会优先执行single.php如…...

libVLC 提取视频帧使用QGraphicsView渲染

在前面章节中,我们讲解了如何使用QWidget渲染每一帧视频数据,这种方法对 CPU 负荷较高。 libVLC 提取视频帧使用QWidget渲染-CSDN博客 后面又讲解了使用OpenGL渲染每一帧视频数据,使用 OpenGL去绘制,利用 GPU 减轻 CPU 计算负荷…...

大厂Java笔试题之判断字母大小写

/*** 题目:如果一个由字母组成的字符串,首字母是大写,那么就统计该字符串中大写字母的数量,并输出该字符串中所有的大写字母。否则,就输出* 该字符串不是首字母大写*/ public class Demo2 {public static void main(St…...

三大痛点终结!猫抓插件:颠覆式网页资源提取与管理解决方案

三大痛点终结!猫抓插件:颠覆式网页资源提取与管理解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾遇到这样的困境:在视频网站看到精彩教程想保存离…...

学术探险家的秘密武器:书匠策AI,解锁课程论文新宇宙!

在学术的浩瀚星空中,每一位学子都是勇敢的探险家,怀揣着对知识的渴望,踏上探索未知的征途。而课程论文,则是这场探险中不可或缺的“星际导航图”,指引着我们穿越知识的迷雾,抵达真理的彼岸。但你是否曾遇到…...

4个步骤掌握ComfyUI-WanVideoWrapper:从环境搭建到视频生成全攻略

4个步骤掌握ComfyUI-WanVideoWrapper:从环境搭建到视频生成全攻略 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper ComfyUI-WanVideoWrapper是一款强大的AI视频生成插件,作…...

大气层系统全链路实战指南:从需求分析到风险控制的完整实施路径

大气层系统全链路实战指南:从需求分析到风险控制的完整实施路径 【免费下载链接】Atmosphere-stable 大气层整合包系统稳定版 项目地址: https://gitcode.com/gh_mirrors/at/Atmosphere-stable 大气层系统(Atmosphere)作为Switch定制化…...

猫抓:重构网页资源获取与媒体管理的高效解决方案

猫抓:重构网页资源获取与媒体管理的高效解决方案 【免费下载链接】cat-catch 猫抓 chrome资源嗅探扩展 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 在数字内容爆炸的时代,网页资源获取已成为内容创作者、教育工作者和普通用户的…...

Java 25正式支持ZGC 2.0仅剩72小时!你还没掌握这8个颠覆性调优参数?

第一章:ZGC 2.0在Java 25中的里程碑意义与演进全景ZGC 2.0 是 Java 25 中最具突破性的垃圾回收器升级,标志着低延迟 GC 技术从“亚毫秒停顿”正式迈向“纳秒级停顿保障”的新纪元。它不再仅依赖染色指针(Colored Pointers)和读屏障…...

RStudio Server部署与运维实战:从零搭建到高效管理

1. 环境准备:搭建RStudio Server的基石 在开始部署RStudio Server之前,我们需要确保服务器环境已经准备就绪。就像盖房子需要打地基一样,这一步决定了后续所有工作的稳定性。我遇到过不少因为环境问题导致的安装失败案例,大多数都…...

Tomcat服务没启动?手把手解决127.0.0.1拒绝连接问题(附端口排查技巧)

Tomcat服务没启动?手把手解决127.0.0.1拒绝连接问题(附端口排查技巧) 当你满怀期待地在浏览器输入http://127.0.0.1:8080准备测试刚部署的Java Web应用时,屏幕上冰冷的"拒绝连接"提示就像一盆冷水浇下来。这种情况我见过…...

从零到一:超外差收音机DIY全流程解析与调试心法

1. 超外差收音机原理精要 第一次接触超外差收音机时,我被这个拗口的专业名词吓到了。但拆解开来理解其实很简单——"超"指的是本振频率超过信号频率,"外差"则是混频产生差频的过程。这种设计巧妙地把不同电台信号都转换成固定的465k…...

__attribute__((unused))的妙用:如何优雅地处理未使用的变量与参数

1. 为什么我们需要__attribute__((unused)) 在C/C开发中,编译器警告就像一位严格的代码审查员,时刻提醒我们可能存在的问题。但有时候,我们确实需要定义一些暂时不使用的变量或参数,比如为了保持接口兼容性,或者在某些…...