当前位置: 首页 > news >正文

Leetcode-19. 删除链表的倒数第 N 个结点

这里采用 计算链表长度法

  • 第一次遍历链表,得到链表长度 length

  • 计算要删除节点的正序位置length - n + 1

  • 用一个虚拟头节点 dummy 来统一处理删除头结点的情况。

  • 第二次遍历,将要删除的节点跳过,即让前驱节点指向要删除节点的下一个节点。


解题过程

  1. 遍历一次链表,用 length 记录节点总数。

  2. 计算要删除的节点前一个节点的位置,也就是 length - n

  3. 使用一个 dummy 节点 指向 head,用 tail 指针遍历到该位置。

  4. 直接跳过目标节点:tail.next = tail.next.next

  5. 返回 dummy.next 作为新链表头。

image.png

# Definition for singly-linked list.# class ListNode:#     def __init__(self, val=0, next=None):#         self.val = val#         self.next = nextclass Solution:def removeNthFromEnd(self, head: Optional[ListNode], n: int) -> Optional[ListNode]:num=headi=0while num:i+=1num=num.nextp=headdummy=ListNode()tail=dummyfor j in range(i-n):tail.next=pp=p.nexttail=tail.nexttemp=p.nexttail.next=tempreturn dummy.next
http://www.xdnf.cn/news/1270855.html

相关文章:

  • 比较useCallback、useMemo 和 React.memo
  • 机器学习 K-Means聚类 无监督学习
  • 第4章 程序段的反复执行for语句P115练习题(题及答案)
  • 元宇宙技术如何改变社交方式?
  • 哈希与安全
  • pgAdmin 仪表盘的system部分不能显示,报SYSTEM_STATS扩展没有安装
  • C++ 中的智能指针
  • Qt 综述:从基础到一般应用
  • 机器翻译中的语言学基础详解(包括包括语法、句法和语义学等)
  • 记一次奇异的bug
  • n8n 入门指南:更适合跨境出海搞钱的AI智能体
  • 基于 InfluxDB 的服务器性能监控系统实战(一)
  • vue3上传的文件在线查看
  • 【linux基础】Linux命令提示符解析与操作指南
  • 如何在 Ubuntu 24.04 LTS Linux 上安装 Azure Data Studio
  • 编译技术的两条演化支线:从前端 UI 框架到底层编译器的智能测试
  • “自动报社保 + 查询导出 ” 的完整架构图和 Playwright C# 项目初始化模板
  • 基于IPD体系的研发项目范围管理
  • 【渲染流水线】[几何阶段]-[几何着色]以UnityURP为例
  • 202506 电子学会青少年等级考试机器人三级器人理论真题
  • 《算法导论》第 15 章 - 动态规划
  • FreeRTOS源码分析五:资源访问控制(一)
  • SOLi-LABS Page-3 (Stacked injections) --39-53关
  • OpenAI 的最新 AI 模型 GPT-5 现已在 GitHub Models 上提供!
  • 如何在 Windows 下使用 WSL 安装 Ubuntu 并配置国内镜像
  • 神经网络-local minima and saddle point
  • FFMPEG将H264转HEVC时,码率缩小多少好,以及如何通过SSIM(Structural Similarity Index结构相似性指数)衡量转码损失
  • 使用Navicat备份数据库MySQL、PostGreSQL等
  • Meta AI水印计划的致命缺陷——IEEE Spectrum深度文献精读
  • (nice!!!)(LeetCode 面试经典 150 题) 146. LRU 缓存 (哈希表+双向链表)