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
相关推荐
api_1800790546019 小时前
【技术教程】Python/Node.js 调用拼多多商品详情 API 示例详解
大数据·开发语言·python·数据挖掘·node.js
0小豆020 小时前
智能字幕校准系统实战(二):6级匹配算法从精确到模糊的全链路解析
python·nlp·算法设计·spacy·ai算法·时间序列对齐
jerryinwuhan20 小时前
Python数据挖掘之回归
python·数据挖掘·回归
ColderYY20 小时前
python和mongodb交互
python·mongodb
c++服务器开发20 小时前
掌握RAG系统的七个优秀GitHub存储库
人工智能·python·github·rag
AI的费曼精神20 小时前
Python装饰器入门:让你的代码更优雅
python
苏纪云20 小时前
数据结构期中复习
数据结构·算法
初听于你21 小时前
Java五大排序算法详解与实现
数据结构·算法·排序算法
多多*21 小时前
牛客周赛 Round 117 ABCDE 题解
java·开发语言·数据结构·算法·log4j·maven
熬夜敲代码的小N21 小时前
仓颉ArrayList动态数组源码分析:从底层实现到性能优化
数据结构·python·算法·ai·性能优化