LeetCode中等题之删除链表的中间节点
题目
给你一个链表的头节点 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中等题之删除链表的中间节点相关推荐
- leetcode刷题:删除链表中的节点
题目: 分析: 删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作. 这道题中,传 ...
- LeetCode(237)——删除链表中的节点(JavaScript)
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例1: 输入: head = [4,5 ...
- 牛客题霸 [删除链表的倒数第n个节点] C++题解/答案
牛客题霸 [删除链表的倒数第n个节点] C++题解/答案 题目描述 给定一个链表,删除链表的倒数第n个节点并返回链表的头指针 例如, 给出的链表为:1->2->3->4->5, ...
- LeetCode 2095. 删除链表的中间节点(快慢指针)
文章目录 1. 题目 2. 解题 1. 题目 给你一个链表的头节点 head .删除 链表的 中间节点 ,并返回修改后的链表的头节点 head . 长度为 n 链表的中间节点是从头数起第 ⌊n / 2 ...
- 每日一题——leetcode237 删除链表中的结点
1 题目 237. 删除链表中的节点 难度简单 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保 ...
- 删除链表的中间节点 Java实现_【链表问题】删除单链表的中间节点
前言 以专题的形式更新刷题贴,欢迎跟我一起学习刷题,相信我,你的坚持,绝对会有意想不到的收获.每道题会提供简单的解答,如果你有更优雅的做法,欢迎提供指点,谢谢. [题目描述] 给定链表的头节点head ...
- 237. 删除链表中的节点【我亦无他唯手熟尔】
237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...
- 2095. 删除链表的中间节点、19. 删除链表的倒数第 N 个结点、148. 排序链表
LeetCode题解 1.2095. 删除链表的中间节点 2. 删除链表的倒数第 N 个结点 3.排序链表 1.2095. 删除链表的中间节点 题目描述: ➡️挑战链接⬅️ 分析: 首先题目要求我们删 ...
- 链表问题3——删除链表的中间节点(初阶)
题目 给定链表的头节点head,实现删除链表的中间节点的函数. 不删除任何节点 1->2, 删除节点1 1->2->3,删除节点2 1->2->3->4,删除节点2 ...
最新文章
- async [ə'zɪŋk] 函数
- 把数学函数印在T恤上却被告侵权,这位程序员怒了
- 动漫人物VS编程语言
- 48.动态分区匹配算法(连续分区)
- 32位 shell.efi x86_Ubuntu 20.04 LTS或不再支持32位x86 (i386)
- php凑整10算法,凑整法练习题.doc
- 网站前端_EasyUI.基础入门.0002.带你玩转jQuery EasyUI Panel组件 ?
- java web 课程设计_javaweb期末课程设计
- 给定一个邻接矩阵,求可达矩阵及强连通、单向连通、弱连通、不连通的判断
- alien skin ExposureX8胶片插件
- MySQL备份报错mysqldump: Got error: 1045: Access denied for user ‘root‘@‘localhost‘ (using password: YES)
- 学习总结1-跟开涛学SpringMVC
- 教育部高等教育司指定大学生必读100本书目
- Graphics.Blit
- 生产实习(制作温度计)
- 【PyCharm实用教程】最详细的Pycharm使用教程,你真不要进来学习一下?
- 高博视觉SLAM十四讲--罗德里格斯公式推导
- 医院wifi覆盖解决方案
- TOA与TDOA算法实现【MATLAB】
- ssm众筹平台系统毕业设计(附源码、运行环境)
热门文章
- 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed
- 计算机如何表示色彩?
- etcd 笔记(02)— etcd 安装(apt 或 yum 安装 、二进制包安装、Docker 安装 etcd、etcd 前端工具etcdkeeper)
- 2022-2028年中国高粘保护膜行业市场专项调研及发展趋势分析报告
- spring Ioc本质
- 【软件工程】RUP与软件开发5大模型
- 机房收费系统总结【2】-细节优化
- SpringCloud Alibaba 微服务架构版本说明
- gensim的word2vec如何得出词向量(python)
- Lock、ReentrantLock、ReentrantReadWriteLock原理及应用深入解析