LeetCode19题:删除链表的倒数第N个结点(python3)

在这里插入图片描述

代码思路:

我们可以设想假设设定了双指针 p 和 q 的话,当 q 指向末尾的 NULL,p 与 q 之间相隔的元素个数为 n 时,那么删除掉 p 的下一个指针就完成了要求。

1.设置虚拟节点 dummyHead 指向 head
2.设定双指针 p 和 q,初始都指向虚拟节点 dummyHead
3.移动 q,直到 p 与 q 之间相隔的元素个数为 n
4.同时移动 p 与 q,直到 q 指向的为 NULL
5.将 p 的下一个节点指向下下个节点

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        fast = slow = dummy_head = ListNode(next=head)
        while n:
            fast = fast.next
            n -= 1
        while fast.next:
            fast = fast.next
            slow = slow.next
        slow.next = slow.next.next

        return dummy_head.next




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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

定时执行专家V7.1 多国语言版本英文版发布 - TimingExecutor V7.1 English Version Release

目录 ◆ About TimingExecutor ◆ Main Frame ◆ Job Dailog ◆ Trigger Dialog ◆ Setting Dialog ◆ About Dialog ◆ Job Detail Information panel ◆ Statistics Information panel ◆ About TimingExecutor 《定时执行专家》是一款制作精良、功能强大、毫秒精度…

数据开发 - 面经(已OC) - 北京中海通

投递流程: 2023.12.28 Boss 打招呼 2024.1.3 约面 2024.1.4 上午面试 (手机端腾讯会议) 2024.1.5 上午 通知面试通过 腾讯会议手机端无法和录影机同时运行,录音无效,之后注意使用电脑面试 面试流程:首…

轻松实现文件共享:CentOS 7匿名访问vsftpd服务指南

前言 在这篇文章中,将会详细介绍了如何在 CentOS 7 系统中利用 vsftpd 服务以匿名用户身份登录,轻松实现文件的上传和下载。无需繁琐的登录过程,无需复杂的权限设置,只需简单的步骤,您就能够快速畅享文件传输的乐趣。…

Git 掌握

目录 一、前言 二、centos安装Git 三、Git基本操作 (1) 创建Git本地仓库 (2) 配置Git (3) 认识工作区,暂存区,版本库 四、添加文件 五、查看.git文件 六、修改文件 七、版本回退 八、撤销修改 (1) 场景一 对于还没有add的代码 (2) 场景二 已…

数据库市场领军黑马:亚信安慧AntDB

随着数字时代的来临,数据库的重要性愈发凸显,而在这个领域,中国的AntDB数据库正以强大的姿态崭露头角。AntDB不仅仅是一个数据库,更是一个强大的数据处理引擎,其成功服务了数亿多用户,处理着每秒百万笔通信…

Sqoop “hcatalog does not exist!” 提示信息消除方法

sqoop运行的时候老是有这个报错提示,看着可烦,解决消除一下 解决方法: 1、在$SQOOP_HOME/bin目录下面修改configure-sqoop文件 1)进文件夹 cd /training/sqoop-1.4.7/bin2)编辑文件 vi /configure-sqoop3&#xff…

“揭秘网络握手与挥别:TCP三次握手和四次挥手全解析“

前言 在计算机网络中,TCP(传输控制协议)是一种重要的通信协议,用于在网络中的两台计算机之间建立可靠的连接并交换数据。TCP协议通过“三次握手”和“四次挥手”的过程来建立和终止连接,确保数据的准确传输。 一、三…

【IC设计】Windows和Ubuntu下安装Verilator

文章目录 Windows下安装verilatorUbuntu下安装verilator安装前的准备安装verilator检查 Windows下安装verilator windows下安装比较麻烦,需要首先安装cygwin,cygwin是一个包管理工具,类似apt,然后通过cygwin安装verilator所需的各…

搜维尔科技:3D Systems Geomagic Design X 逆向工程软件

产品概述 3D Systems Geomagic Design X 是全面的逆向工程软件 GeomagicoDesign XTM是全面的逆向工程软件,它结合了基于特征的CAD数模与三维扫描数据处理,使您能创建出可编辑、基于特征的CAD数模,并与您现有的CAD软件兼容。 拓展您的设计能…

图论练习6

[NOIP2013]车站分级 Here 解题思路 由于起始点之间所选的站号,相互之间一定满足那么对于起始点间未选择的站号,一定满足选择的站号考虑用边来维护信息,表示的级别大于按题意,则车站会被分为几个联通块,且保证块内无环…

C#与python交互(flask发送Get/Post请求)

先运行python,再运行C# **ps: 注意修改端口号**python发送Get/Post请求 # -*- coding: utf-8 -*- # Time : 2024/1/25 15:52 # Author : YY # File : post_test.py # Content:提交数据给客户端 from flask import Flask, request, jsonify, redirect…

Java 学习和实践笔记(30):继承树的追溯

如上图所示,在上图中, 在最下面的子类Husky(哈士奇)中,假定要查找一个变量或者方法h, 那么其查找顺序属性/方法查找顺序是这样的: 首先,查找当前类中有没有属性h 如果没有,则依次往上上溯每个…

Nodejs 18.19.0 基本环境搭建(无版本管理)

简介 记录一次安装Nodejs的过程, 及设置install 安装路径等… 基本安装及设置步骤 1. 下载Nodejs并安装 NodeJs 18.19.0 LTS Windows安装msi, 下载后安装在自己想要的路径, 例如 D:\Softwares\Dev_Tools\nodejs cmd 中输入 nodejs version 可以查看版本 2. 设置 npm config ls…

Object.defineproperty

Object.defineproperty 的作用就是直接在一个对象上定义一个新属性,或者修改一个已经存在的属性.。并返回此对象。 Object.defineproperty 参数 Object.defineproperty方法需要传递3个参数Object.defineproperty(obj, prop, desc ) 参数1…

【微信小程序】屏幕适配

在网页中一般是使用 rem 单位,它能够根据html的字号大小自动改变尺寸,开发者可以动态的计算屏幕尺寸,然后根据屏幕大小的不同设置html的字号 小程序解决适配使用 rpx 单位,它能够根据屏幕大小自动进行转换。 每一个机型的宽度和高…

Python实例☞数据类型及运算符案例

实例一: ❶要求☞从键盘获取一个4位整数,并分别输出个、十、百、千位 ❷程序代码☞ ①第一种方法 print(请输入一个4位整数:) xeval(input()) print(个位数为:,x%10) print(十位数为:,(x//10)%10) print(百位数为&am…

第一次捡垃圾

配置 cpu e3 1225 v6 淘宝 130 显卡 p106-100(1060矿卡的特称) 咸鱼 118 内存 8g 3200频率 2 咸鱼 702140 硬盘 128g 固态 咸鱼 35 主板 ex-b150m-v3 咸鱼 110 电源 400w 咸鱼 58 4热管cpu散热器 咸鱼 28 机箱 迷你 拼多多 28 电源线 1m5 淘宝 8 pcie转m.2 拼多多 9 编程器 用…

关于Vue3的一些操作

1. 设置浏览器自动打开 在package.json 中设置 dev: vite --open 2.给src文件夹配置别名 在vite.config.ts配置文件中添加以下内容 3. 如果2中有红色波浪线的问题 ***安装一个文件包***npm install types/node3. 在tsconfig.json配置文件中,找到配置项compi…

凌鲨微应用开发流程

微应用开发流程 使用vite,nextjs等框架创建前端项目引入需要的api包通过调试界面进行调试 创建前端项目 vite yarn create vitenextjs yarn create next-app引入需要的api包 名称权限说明http跨域访问跨域http访问tauri提供的apilinksaas-minapp/api打开浏览器读本地文件…

无法更新下载安装升级谷歌浏览器Chrome无法更新至最新版本怎么解决下载更新谷歌浏览器?

谷歌Chrome浏览器有新版本chrome可用,点击后无法更新chrome至最新版本,造成每次在电脑上打开谷歌chrome浏览器都会提示更新,重新安装chrome又无法打开谷歌浏览器官方网站。 谷歌浏览器Chrome无法更新至最新版本怎么办? 1、百度搜…