LeetCode.19.删除链表的倒数第n个节点

题目描述:

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

输入输出实例:

思路:这道题目我们可以用双指针来做,让first和second指针之间的距离为n+1,然后我们first和second指针都往后移动,这样当first所指的为最后一个节点的后一个(即空节点)的时候,我们的second刚好在倒数第n个节点的前一个节点,然后我们second.next = second.next.next,这样达到去除第n个节点的目的。根据上述思路我们有以下代码:

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 = ListNode()
        dummy.next = head
        first = dummy
        second = dummy

        for _ in range(n+1):
            first = first.next
        
        while first:
            first = first.next
            second = second.next

        second.next = second.next.next

        return dummy.next
相关推荐
昆曲之源_娄江河畔几秒前
婴儿版训练GPT
python·gpt·机器学习·大模型训练
qq_4138474015 分钟前
Redis怎样设计企业级备份策略_结合全量RDB与增量AOF实现多级数据保护
jvm·数据库·python
iiiiyu17 分钟前
常用API(StringJoiner类 & Math类 & System类)
java·大数据·开发语言·数据结构·编程语言
qq_3729069322 分钟前
如何通过点击事件动态展开和收起 HTML 元素
jvm·数据库·python
小糯米60123 分钟前
C语言指针3
c语言·数据结构·算法
qq_3721542335 分钟前
Golang Gin怎么做JWT登录认证_Golang Gin JWT教程【实用】
jvm·数据库·python
2401_8716965236 分钟前
C#怎么实现文件上传下载 C#如何用WebAPI实现大文件断点续传功能【网络】
jvm·数据库·python
m0_3776182339 分钟前
如何在 pytest 中通过组合多个 fixture 实现参数化测试
jvm·数据库·python
Full Stack Developme41 分钟前
Hutool StrUtil 教程
开发语言·网络·python
小糖学代码41 分钟前
LLM系列:2.pytorch入门:2.PyTorch张量运算
pytorch·python·aigc·numpy