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
相关推荐
承渊政道12 小时前
【贪心算法】(经典实战应用解析(三):K次取反后最⼤化的数组和、按⾝⾼排序、优势洗牌、最⻓回⽂串、增减字符串匹配)
数据结构·c++·学习·算法·贪心算法·线性回归·哈希算法
前端技术12 小时前
大模型安全全景解析——从DeepSeek看AI伦理与未来挑战
人工智能·python·安全
Lucky_ldy13 小时前
C语言学习:动态内存管理(数据结构关键)
c语言·数据结构·学习
m0_7020365313 小时前
如何通过SQL视图对比两表差异_利用FULL JOIN构建视图
jvm·数据库·python
无敌昊哥战神13 小时前
【机器学习扫盲】从预测 Score 到ACC、 Precision、Recall、ROC 曲线的白话全解
python·深度学习·算法·机器学习
老纪13 小时前
golang如何实现工作流引擎_golang工作流引擎实现要点
jvm·数据库·python
70asunflower13 小时前
Python 开发实用技巧集锦
开发语言·python
睡眠艺术家(✿◡‿◡)13 小时前
Python五. 程序控制结构(详细解释)
开发语言·python
cvcode_study13 小时前
Jupyter Notebook
python·jupyter
70asunflower13 小时前
Python `pathlib` 模块使用教程
python