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
相关推荐
ajole2 分钟前
C++学习笔记——stack和queue
开发语言·数据结构·c++·笔记·学习·stl·学习方法
飞Link2 分钟前
偏好对齐阶段中的通用模型蒸馏、领域模型蒸馏和模型自我提升
python·数据挖掘
whhzhai2 分钟前
装饰器(跨领域调用时增强异常信息)
python
幻云20104 分钟前
Python深度学习:从筑基与巅峰
前端·javascript·vue.js·人工智能·python
花间相见7 分钟前
【JAVA开发】—— Maven核心用法与实战指南
java·python·maven
ValhallaCoder8 分钟前
Day51-图论
数据结构·python·算法·图论
苦藤新鸡9 分钟前
24.判断回文链表
数据结构·链表
晨非辰11 分钟前
Linux文件操作实战:压缩/传输/计算10分钟速成,掌握核心命令组合与Shell内核交互秘籍
linux·运维·服务器·c++·人工智能·python·交互
小镇学者13 分钟前
【python】python虚拟环境与pycharmIDE配置
开发语言·python
q_354888515316 分钟前
交通数据分析项目:python地铁数据可视化分析系统 Flask框架 爬虫 数据分析 轨道数据 地铁数据分析 大数据 (源码)✅
人工智能·爬虫·python·机器学习·信息可视化·数据分析·flask