Leetcode 19.删除链表的倒数第第N个结点

1.题目基本信息

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

地址:https://leetcode.cn/problems/remove-nth-node-from-end-of-list/description/

2.解题方法

2.1.解题思路

使用快慢指针

2.2.解题步骤

第一步,初始化快指针为head,慢指针指向一个哑结点,哑结点指向head

第二步,让快指针先走k步

第三步,让快慢指针同步走,直到快指针为null,此时的慢指针刚好走到倒数第k个节点头结点位置,执行删除操作即可完成解题

3.解题代码

class Solution:
    def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:
        dumbNode=ListNode(0,head)
        dumbNode.next=head
        slow,fast=dumbNode,head
        for i in range(n):
            fast=fast.next
        while fast:
            fast=fast.next
            slow=slow.next
        slow.next=slow.next.next
        return dumbNode.next

4.执行结果

在这里插入图片描述

posted @   Geek0070  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示