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
相关推荐
沐苏瑶5 小时前
Java 搜索型数据结构全解:二叉搜索树、Map/Set 体系与哈希表
java·数据结构·算法
sg_knight5 小时前
设计模式实战:模板方法模式(Template Method)
python·设计模式·模板方法模式
FreakStudio5 小时前
ESP32居然能当 DNS 服务器用?内含NCSI欺骗和DNS劫持实现
python·单片机·嵌入式·面向对象·并行计算·电子diy
乐观勇敢坚强的老彭6 小时前
2026全国青少年信息素养大赛考纲
python·数学建模
ZoeJoy86 小时前
算法筑基(二):搜索算法——从线性查找到图搜索,精准定位数据
算法·哈希算法·图搜索算法
Alicx.6 小时前
dfs由易到难
算法·蓝桥杯·宽度优先
_日拱一卒6 小时前
LeetCode:找到字符串中的所有字母异位词
算法·leetcode
YMWM_6 小时前
【问题】thor上的cubLas
linux·python·thor
wefly20176 小时前
免安装!m3u8live.cn在线 M3U8 播放器,小白也能快速上手
java·开发语言·python·json·php·m3u8·m3u8在线转换