题目

给你一个链表的头节点 head 。删除 链表的 中间节点 ,并返回修改后的链表的头节点 head 。
长度为 n 链表的中间节点是从头数起第 ⌊n / 2⌋ 个节点(下标从 0 开始),其中 ⌊x⌋ 表示小于或等于 x 的最大整数。
对于 n = 1、2、3、4 和 5 的情况,中间节点的下标分别是 0、1、1、2 和 2 。
示例 1:
输入:head = [1,3,4,7,1,2,6]
输出:[1,3,4,1,2,6]
解释:
上图表示给出的链表。节点的下标分别标注在每个节点的下方。
由于 n = 7 ,值为 7 的节点 3 是中间节点,用红色标注。
返回结果为移除节点后的新链表。
示例 2:
输入:head = [1,2,3,4]
输出:[1,2,4]
解释:
上图表示给出的链表。
对于 n = 4 ,值为 3 的节点 2 是中间节点,用红色标注。
示例 3:
输入:head = [2,1]
输出:[2]
解释:
上图表示给出的链表。
对于 n = 2 ,值为 1 的节点 1 是中间节点,用红色标注。
值为 2 的节点 0 是移除节点 1 后剩下的唯一一个节点。
提示:
链表中节点的数目在范围 [1, 10^5] 内
1 <= Node.val <= 10^5
来源:力扣(LeetCode)

解题思路

  这个题是典型的快慢指针题,只需要保持三个指针即可;一个快指针一个慢指针,还有一个慢指针的前驱,当快指针探底的时候,就是慢指针走到中间的时候。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:def deleteMiddle(self, head: Optional[ListNode]) -> Optional[ListNode]:if head.next==None:return Nonefast=headslow=headwhile True:try:fast=fast.next.nextexcept:breakp=slowslow=slow.nextp.next=p.next.nextreturn head

LeetCode中等题之删除链表的中间节点相关推荐

  1. leetcode刷题:删除链表中的节点

    题目: 分析: 删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作. 这道题中,传 ...

  2. LeetCode(237)——删除链表中的节点(JavaScript)

    请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例1: 输入: head = [4,5 ...

  3. 牛客题霸 [删除链表的倒数第n个节点] C++题解/答案

    牛客题霸 [删除链表的倒数第n个节点] C++题解/答案 题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, ...

  4. LeetCode 2095. 删除链表的中间节点(快慢指针)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个链表的头节点 head .删除 链表的 中间节点 ,并返回修改后的链表的头节点 head . 长度为 n 链表的中间节点是从头数起第 ⌊n / 2 ...

  5. 每日一题——leetcode237 删除链表中的结点

    1 题目 237. 删除链表中的节点 难度简单 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保 ...

  6. 删除链表的中间节点 Java实现_【链表问题】删除单链表的中间节点

    前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获.每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢. [题目描述] 给定链表的头节点head ...

  7. 237. 删除链表中的节点【我亦无他唯手熟尔】

    237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...

  8. 2095. 删除链表的中间节点、19. 删除链表的倒数第 N 个结点、148. 排序链表

    LeetCode题解 1.2095. 删除链表的中间节点 2. 删除链表的倒数第 N 个结点 3.排序链表 1.2095. 删除链表的中间节点 题目描述: ➡️挑战链接⬅️ 分析: 首先题目要求我们删 ...

  9. 链表问题3——删除链表的中间节点(初阶)

    题目 给定链表的头节点head,实现删除链表的中间节点的函数. 不删除任何节点 1->2, 删除节点1 1->2->3,删除节点2 1->2->3->4,删除节点2 ...

最新文章

  1. async [ə'zɪŋk] 函数
  2. 把数学函数印在T恤上却被告侵权,这位程序员怒了
  3. 动漫人物VS编程语言
  4. 48.动态分区匹配算法(连续分区)
  5. 32位 shell.efi x86_Ubuntu 20.04 LTS或不再支持32位x86 (i386)
  6. php凑整10算法,凑整法练习题.doc
  7. 网站前端_EasyUI.基础入门.0002.带你玩转jQuery EasyUI Panel组件 ?
  8. java web 课程设计_javaweb期末课程设计
  9. 给定一个邻接矩阵,求可达矩阵及强连通、单向连通、弱连通、不连通的判断
  10. alien skin ExposureX8胶片插件
  11. MySQL备份报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  12. 学习总结1-跟开涛学SpringMVC
  13. 教育部高等教育司指定大学生必读100本书目
  14. Graphics.Blit
  15. 生产实习(制作温度计)
  16. 【PyCharm实用教程】最详细的Pycharm使用教程,你真不要进来学习一下?
  17. 高博视觉SLAM十四讲--罗德里格斯公式推导
  18. 医院wifi覆盖解决方案
  19. TOA与TDOA算法实现【MATLAB】
  20. ssm众筹平台系统毕业设计(附源码、运行环境)

热门文章

  1. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
  2. 计算机如何表示色彩?
  3. etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
  4. 2022-2028年中国高粘保护膜行业市场专项调研及发展趋势分析报告
  5. spring Ioc本质
  6. 【软件工程】RUP与软件开发5大模型
  7. 机房收费系统总结【2】-细节优化
  8. SpringCloud Alibaba 微服务架构版本说明
  9. gensim的word2vec如何得出词向量(python)
  10. Lock、ReentrantLock、ReentrantReadWriteLock原理及应用深入解析