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
相关推荐
闻缺陷则喜何志丹1 分钟前
【图论 树 启发式合并】P7165 [COCI2020-2021#1] Papričice|普及+
c++·算法·启发式算法·图论··洛谷
alexwang2113 分钟前
AT_abc458_d [ABC458D] Chalkboard Median题解
c++·算法·题解·atcoder
故事和你913 分钟前
洛谷-【图论2-4】连通性问题1
开发语言·数据结构·c++·算法·动态规划·图论
RSCompany5 分钟前
Frida 17 以后 Python API 跑旧版 JS 报 Java is not defined ?一行 import 直接恢复 Frida 16 体验
开发语言·python·逆向·hook·frida·android逆向·frida17
张道宁8 分钟前
从零开始训练YOLO手机检测模型:完整实战教程
python·yolo
快乐的哈士奇8 分钟前
对话框打字机效果:Vur + Java/Python 实现
java·开发语言·python
周末也要写八哥13 分钟前
算法实例分析:使数组相等的最小开销
算法
malog_15 分钟前
PyTorch图像数据加载实战指南
图像处理·人工智能·pytorch·python
博.闻广见16 分钟前
AI_Python基础-4.标准库与IO
开发语言·python
程序猿编码16 分钟前
大模型的“文字障眼法“:FlipAttack 文本反转越狱技术全解析
linux·python·ai·大模型