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
相关推荐
xiaoxue..1 分钟前
哨兵节点与快慢指针解决链表算法难题
前端·javascript·数据结构·算法·链表
拉姆哥的小屋6 分钟前
从400维向量到160000维矩阵:基于深度学习的火焰参数预测系统全解析
开发语言·人工智能·python·深度学习·线性代数·算法·矩阵
矢鱼8 分钟前
python中对应c++容器的结构
开发语言·c++·python·算法
古城小栈10 分钟前
Java 内存优化:JDK 22 ZGC 垃圾收集器调优
java·python·算法
serve the people13 分钟前
tensorflow 零基础吃透:tf.sparse.SparseTensor 与核心 TensorFlow API 的协同使用
人工智能·python·tensorflow
雍凉明月夜19 分钟前
视觉opencv学习笔记Ⅴ-数据增强(2)
人工智能·python·opencv·计算机视觉
lxh011319 分钟前
最长公共子序列
前端·数据结构
棒棒的皮皮34 分钟前
【OpenCV】Python图像处理几何变换之缩放
图像处理·python·opencv·计算机视觉
塔克Tark39 分钟前
【Python】xxx.py文件打包为.exe可执行文件
开发语言·python
会笑的小熊39 分钟前
解决安装torch出现SSL 连接异常
python