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
相关推荐
浩安2 分钟前
【Python网络编程】02_面向对象的三大特征
python
m0_514520572 分钟前
如何分析Data Guard的网络瓶颈_Bandwidth与Redo传输速率的计算公式
jvm·数据库·python
weixin_458580124 分钟前
如何查找SQL中未使用JOIN的数据行_利用IS NULL配合LEFT JOIN
jvm·数据库·python
SarL EMEN4 分钟前
Python大数据可视化:基于大数据技术的共享单车数据分析与辅助管理系统_flask+hadoop+spider
大数据·python·信息可视化
自我意识的多元宇宙4 分钟前
二叉树的遍历和线索二叉树--由遍历序列构造二叉树
数据结构
吕源林4 分钟前
c++如何利用filesystem--path--lexically_normal规范化路径名【详解】
jvm·数据库·python
a9511416426 分钟前
解决Socket图像传输中断问题:基于分块接收与正确连接模型的稳定实现
jvm·数据库·python
2402_854808377 分钟前
如何防止SQL注入泄露元数据_限制数据库信息查询权限
jvm·数据库·python
爱写代码的倒霉蛋8 分钟前
2021年天梯赛L1-8
数据结构·算法
默 语8 分钟前
Java的“后路“:不是退场,而是换了一种活法
java·开发语言·python