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
相关推荐
HappyAcmen几秒前
理解Python中的global与nonlocal
python
测试老哥31 分钟前
Web自动化测试:Cypress 测试框架概述
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
曲幽38 分钟前
FastAPI项目半夜报警吵醒你?聊聊告警这事儿怎么搞!
python·logging·fastapi·web·monitoring·webserver·health·uptimerobot
Bert.Cai1 小时前
Python模块简介
开发语言·python
2501_924952691 小时前
自动化机器学习(AutoML)库TPOT使用指南
jvm·数据库·python
Thomas.Sir1 小时前
第二章:Python3 之 列表与元组
python·列表·元组
忘忧记1 小时前
Fixture详解
开发语言·python
echome8881 小时前
Python 装饰器实战:用@syntax 优雅地增强函数功能
开发语言·python
路小雨~1 小时前
如何快速用测试用例来入门一个项目
python
不良人天码星1 小时前
GUI自动化基础(一)
python·ui·自动化