leetcode-python-删除链表的倒数第 N 个结点

题目:

给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。

示例 1:

输入:head = [1,2,3,4,5], n = 2

输出:[1,2,3,5]

示例 2:

输入:head = [1], n = 1

输出:[]

示例 3:

输入:head = [1,2], n = 1

输出:[1]

提示:

链表中结点的数目为 sz

1 <= sz <= 30

0 <= Node.val <= 100

1 <= n <= sz

解答:

python 复制代码
# 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]:
        # 创建一个虚拟节点,使其下一个节点为头节点
        dummy_head = ListNode(0,head)
        # 设置一个快指针和一个慢指针均指向虚拟节点
        fast = slow = dummy_head
        # 使fast指针先走n+1步
        for i in range(n+1):
            fast = fast.next
        # 两个指针一起向前,当fast指针指向null时,跳出循环,此时slow指针指向倒数n+1节点
        while fast:
            fast = fast.next
            slow = slow.next
        # 改变slow指针关于下一个节点的指向
        slow.next = slow.next.next
        return dummy_head.next
相关推荐
傻啦嘿哟4 分钟前
Python操作PDF页面详解:删除指定页的完整方案
开发语言·python·pdf
serve the people8 分钟前
python环境搭建 (十三) tenacity重试库
服务器·python·php
ASS-ASH8 分钟前
AI时代之向量数据库概览
数据库·人工智能·python·llm·embedding·向量数据库·vlm
Daydream.V14 分钟前
逻辑回归实例问题解决(LogisticRegression)
算法·机器学习·逻辑回归
代码无bug抓狂人15 分钟前
C语言之表达式括号匹配
c语言·开发语言·算法
不穿格子的程序员23 分钟前
从零开始写算法——普通数组篇:缺失的第一个正数
算法·leetcode·哈希算法
Nebula_g29 分钟前
线程进阶: 无人机自动防空平台开发教程(更新)
java·开发语言·数据结构·学习·算法·无人机
乔江seven39 分钟前
【Flask 进阶】3 从同步到异步:基于 Redis 任务队列解决 API 高并发与长耗时任务阻塞
redis·python·flask
rit84324991 小时前
基于MATLAB的环境障碍模型构建与蚁群算法路径规划实现
开发语言·算法·matlab
pchaoda1 小时前
基本面因子计算入门
python·matplotlib·量化