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
相关推荐
weixin_58061400几秒前
golang如何使用sync.WaitGroup_golang sync.WaitGroup并发等待使用方法
jvm·数据库·python
疯狂打码的少年7 分钟前
单向循环链表 + 尾指针:让插入删除更高效的秘密武器
数据结构·python·链表
2401_883600258 分钟前
如何配置Oracle的外部口令存储_安全外部密码库Wallet自动登录
jvm·数据库·python
2401_8971905510 分钟前
如何在MongoDB中实现连表查询_group与累计求和操作
jvm·数据库·python
justjinji10 分钟前
PHP源码运行是否受硬盘转速影响_7200转vs5400转对比【指南】
jvm·数据库·python
2301_7965885011 分钟前
如何用 error 事件全局捕获页面图片或脚本加载失败状态
jvm·数据库·python
曲幽11 分钟前
FastAPI 生产环境避坑指南:用 Alembic 管理数据库迁移,别再手动改表结构了!
python·fastapi·web·async·sqlalchemy·env·alembic·migration
qq_4138474017 分钟前
JavaScript中利用Range对象实现复杂的文本选择操作
jvm·数据库·python
qq_6543669818 分钟前
Vue.js组件通信Emit处理长列表滚动到底部后的数据请求
jvm·数据库·python
用户03321266636720 分钟前
使用 Python 提取 PDF 文件中的文本、表格、图片
python