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
相关推荐
百锦再11 分钟前
Java多线程编程全面解析:从原理到实战
java·开发语言·python·spring·kafka·tomcat·maven
Jia ming1 小时前
《智能法官软件项目》—法律计算器模块
python·教学·案例·智能法官
爱华晨宇1 小时前
Python列表入门:常用操作与避坑指南
开发语言·windows·python
一切顺势而行1 小时前
python 面向对象
开发语言·python
绍兴贝贝2 小时前
代码随想录算法训练营第四十六天|LC647.回文子串|LC516.最长回文子序列|动态规划总结
数据结构·人工智能·python·算法·动态规划·力扣
重生之后端学习3 小时前
236. 二叉树的最近公共祖先
java·数据结构·算法·职场和发展·深度优先
___波子 Pro Max.3 小时前
Python参数解析默认True变False
python
橙露3 小时前
面向对象编程思想:Java 与 Python 的封装、继承与多态对比分析
java·开发语言·python
Jia ming3 小时前
《智能法官软件项目》—法条检索模块
python·教学·案例·智能法官软件
LitchiCheng3 小时前
Mujoco 如何添加 Apriltag 并获得相机视野进行识别
人工智能·python·开源