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
相关推荐
没事儿写两篇5 分钟前
Python 包管理工具-uv
python·uv·开源包管理工具
2501_941418556 分钟前
基于YOLO11-C3k2-ESC的避雷器外部缺陷检测实现
python
流㶡7 分钟前
Python爬虫:POST与Selenium
爬虫·python·selenium
爱学习的阿磊14 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python
寄存器漫游者30 分钟前
数据结构 C语言 顺序栈
java·c语言·数据结构
Sagittarius_A*35 分钟前
形态学与多尺度处理:计算机视觉中图像形状与尺度的基础处理框架【计算机视觉】
图像处理·人工智能·python·opencv·计算机视觉
m0_5613596737 分钟前
使用PyQt5创建现代化的桌面应用程序
jvm·数据库·python
2301_7903009638 分钟前
用Python实现自动化的Web测试(Selenium)
jvm·数据库·python
自可乐1 小时前
LangGraph从入门到精通:构建智能Agent的完整指南
人工智能·python·机器学习