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
相关推荐
zyx没烦恼2 分钟前
YAML模块
开发语言·python
智航GIS6 分钟前
4.2 集合(Set)
开发语言·python
小徐Chao努力11 分钟前
【Langchain4j-Java AI开发】07-RAG 检索增强生成
java·人工智能·python
小熊熊知识库33 分钟前
AI架构详解以及免费AI如何薅
人工智能·python·ai使用
hakesashou37 分钟前
python变量如何加入到文件路径
python
梦弦181 小时前
Django:Python高效Web开发利器
python·django
Knight_AL1 小时前
Spring AOP 中 JoinPoint 使用指南
java·python·spring
知远同学1 小时前
Pycharm顶部菜单栏固定显示
ide·python·pycharm
默默前行的虫虫1 小时前
nicegui中多次调用数据库操作总结
数据库·python
Salt_07281 小时前
DAY 47 Tensorboard的使用介绍
人工智能·python·深度学习·机器学习