leetcode代码记录(移除链表元素

news2024/12/26 22:42:54

目录

  • 1. 题目:
  • 2. 我的代码:
  • 小结:

1. 题目:

在这里插入图片描述

给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。

示例 1:

输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]

示例 2:

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

示例 3:

输入:head = [7,7,7,7], val = 7
输出:[]

2. 我的代码:

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def removeElements(self, head: Optional[ListNode], val: int) -> Optional[ListNode]:
        pre_head = ListNode()
        pre_head.next = head
        # 开始位置
        slow_i = pre_head
        fast_i = pre_head.next

        while fast_i:
            
            if fast_i.val != val: 
                slow_i.next = fast_i
                slow_i = slow_i.next

            fast_i = fast_i.next
            
        slow_i.next = None

        return pre_head.next

这个与数组去除元素类似,唯一的区别在于链表节点会保留原来的链式关系,所以最后一个元素可能去除不了。在循环中,最后一个元素如果是和val一样,则不会让慢指针指向它。但是,就是刚才说的:链表节点会保留原来的链式关系。任然会保留最后一个是val的元素,所以,需要在循环结束后,将慢指针的新链表的最后一个节点设置为空slow_i.next = None

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可:

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

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

相关文章

学点Java打小工_Day2Day3_一点作业

1 猜数字(10次机会) 随机生成[1,1000]的一个数,输入你猜的数程序会给出反馈,直到猜对或次数用尽(10次)。 //猜数字 10次机会Testpublic void guessNumber() {Random random new Random();// [0, 1000) 1// [1, 1000]int num ra…

基于 Echarts + Python Flask ,我搭建了一个动态实时大屏监管系统

一、效果展示 1. 动态实时更新数据效果图 2. 鼠标右键切换主题 二、确定需求方案 支持Windows、Linux、Mac等各种主流操作系统;支持主流浏览器Chrome,Microsoft Edge,360等;服务器采用python语言编写,配置好python环…

linux---文件查找

知识点: whereis 可以搜索传统命令的可执行文件路径和说明文档 which 搜索可执行文件 #whereir包含了which locate 在数据库中进行快速查找 find . -name 文件名/文件名要求 #按文件名查找. -iname 文件名 #按文件名查找且…

【史上最全万字mysql进阶语法】

前言: 💞💞大家好,书生♡,今天主要和大家分享一下mysql的进阶语法,数据库的分组/分页/排序/子查询以及详细案例,希望对大家有所帮助。 💞💞前路漫漫,希望大家坚持下去&am…

2024年最新Anaconda3 2024版中Jupyter Notebook安装

一、 Anaconda3 2024版下载 1.下载:Free Download | Anaconda 2.等待 解释:默认选择等等下载 ,时间可能数分钟 3.安装 解释:打开刚刚下载的Anaconda Navigator,并如图安装低版本,高版本会直接报错 4. …

ES8生产实践——性能压测工具esrally

引言 什么是压测 压测,即压力测试,是指对计算机系统、软件应用或网络服务等进行负载测试,以模拟实际使用场景中的高负载情况,检验系统在压力下的性能、稳定性和可靠性。压测旨在确定系统在正常或极端负载下的性能极限&#xff0…

首个业内DNA存储技术规范发布

在DNA数据存储的检索过程中,采用了三个输入对应一个输出逻辑实现的算法模式来生成数据表示的模式。这一算法模式的设计是为了有效编码和解码存储在DNA分子上的信息。 其中提到的“扰动比例”δ(n)是一个关键概念,它衡量的是在总的细胞数目(此…

【MySQL】图形化界面工具DataGrip安装&配置&使用

前言 大家好吖,欢迎来到 YY 滴MySQL系列 ,热烈欢迎! 本章主要内容面向接触过C Linux的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

Redis6.0多线程的疑惑解答

1.Redis6.0之前的版本真的是单线程吗? Redis在处理客户端的请求是,包括获取(socket读)、解析、执行、内容返回(socket 写)等都有一个 顺序串行的主线程处理,这就是所谓的"单线程"。但如果严格来讲并不是单线程,除了主线…

2024蓝桥杯每日一题(并查集)

备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:奶酪 试题二:合并集合 试题三:连通块中点的数量 试题四:网络分析 试题一:奶酪 【题目描述】 现有一块大奶酪,它的高度为 hℎ…

Java SE入门及基础(44)

目录 I / O流(上) 1. 什么是I / O流 过程分析 I / O的来源 Java 中的 I / O流 2. 字节流 OutputStream 常用方法 文件输出流 FileOutputStream 构造方法 示例 InputStream 常用方法 文件输入流 FileInputStream 构造方法 示例 综合练习 字节流应用场景 Java SE文…

命名空间——初识c++

. 个人主页:晓风飞 专栏:数据结构|Linux|C语言 路漫漫其修远兮,吾将上下而求索 文章目录 经典的Hello Word 起航c关键字c语言的命名冲突问题域作用限定符::命名空间 namespace命名空间定义命名空间的使用1.加命名空间名称及作用域限定符2.使用…

web集群-lvs-DR模式基本配置

目录 环境: 一、配置RS 1、安装常见软件 2、配置web服务 3、添加vip 4、arp抑制 二、配置LVS 1、添加vip 2、安装配置工具 3、配置DR 三、测试 四、脚本方式配置 1、LVS-DR 2、LVS-RS 环境: master lvs 192.168.80.161 no…

数据结构与算法4-冒泡排序

文章目录 1. 认识冒泡排序2. 图示2.1 图示12.2 图示2 3. 代码 1. 认识冒泡排序 双层for循环,每次选出最大的数“浮”到数组的最后面;时间复杂度O( n 2 n^2 n2),空间复杂度O(1);重复地遍历待排序的数列,一次比较两个元素&#xff…

HCIP配置实验(路由配置)

要求: 1、R6为ISP,接口IP地址均为公有地址,该设备只能配置IP地址,之后不能冉对其进行任何配置; 2、R1-R5为局域网,私有IP地址192.168.1.0/24;请合理分配; 3、R1、R2、R4,各有两个环回IP地址; R5, R6各有一个…

小字辈[天梯赛]

文章目录 题目描述思路AC代码 题目描述 思路 深度优先搜索 具体流程 1.读入每个人的祖先,标记辈分最高的老祖宗对应的下标pos 2.从pos开始dfs,每次判断当前遍历的深度,如果>原来的深度,更新,并将存储最小辈分的数组…

【C语言】文件操作揭秘:C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】

欢迎来CILMY23的博客喔,本篇为【C语言】文件操作揭秘:C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】,感谢观看,支持的可以给个一键三连,点赞关注收藏。 前言 欢迎来到本篇博客&…

Linux编程4.9 网络编程-建立连接

1、TCP的连接与断开 三次握手与四次挥手 2、服务器端并发性处理 2.1 多进程模型 一个父进程,多个子进程父进程负责等待并接受客户端连接子进程: 完成通信,接受一个客户端连接,就创建一个子进程用于通信。 2.2 多线程模型 多线程服务器是…

Vue3+.NET6前后端分离式管理后台实战(四)

1,Vue3.NET6前后端分离式管理后台实战(四)已经发布, 程序源码已打包,感兴趣的可以关注下载。 2,源码打包可以下载:

整合qq邮箱发送

目录 &#x1f32e;1.获取qq授权码 &#x1fad3;2.引入依赖 &#x1f9c8;3.配置mail信息 &#x1f95e;4.创建实现类 &#x1f956;5.测试 1.获取qq授权码 点击开启服务&#xff0c;发送信息获取授权码 2.引入依赖 <!--邮件--><dependency><groupId&…