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
相关推荐
Chase_______15 小时前
【Python 基础】第2章:流程控制完全指南(if/match/while/for)
python
季明洵15 小时前
动态规划及背包问题
java·数据结构·算法·动态规划·背包问题
第一程序员15 小时前
Python高级特性详解:从基础到进阶
python·github
深邃-16 小时前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5
wzhidev16 小时前
04、Python核心数据类型详解:从一段诡异的调试说起
开发语言·python
wzhidev16 小时前
05、Python流程控制与函数定义:从调试现场到工程实践
linux·网络·python
Thomas.Sir16 小时前
第十一章:深入剖析 Prompt 提示工程
python·prompt
Fortune7916 小时前
用Pandas处理时间序列数据(Time Series)
jvm·数据库·python
2401_8785302116 小时前
高级爬虫技巧:处理JavaScript渲染(Selenium)
jvm·数据库·python
2401_8735449216 小时前
使用Black自动格式化你的Python代码
jvm·数据库·python