LeetCode-每日一题【2095.删除链表的中间节点】

news/2024/10/18 7:45:12/

题目

给你一个链表的头节点 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, 105] 内
  • 1 <= Node.val <= 105

解题思路

1.首先创建了两个指针slow和fast,指向参数head和head.next 。然后,因为链表中节点的数目在范围 [1, 105] 内,所以head节点不会为空,则我们检查fast也就是head.next是否为空,因为对于 n = 1的情况,中间节点的下标为 0 。如果是,则返回null。

2.接下来,进入一个循环,该循环的条件是fast的下一个节点不为空且fast的下一个节点的下一个节点也不为空。这样,当fast到达链表末尾时,slow将指向链表中间节点的前一个节点。在每次循环中,fast向前移动两个节点,slow向前移动一个节点。

3.最后,将slow的下一个节点指向slow的下一个节点的下一个节点,从而删除了中间节点。最后,返回原始的head节点。

代码实现

class Solution {public ListNode deleteMiddle(ListNode head) {ListNode slow = head;ListNode fast = head.next; if(fast == null) return null;while(fast.next != null && fast.next.next != null){fast = fast.next.next;slow = slow.next;}slow.next = slow.next.next;return head;
}
}

测试结果

 

 


http://www.ppmy.cn/news/802413.html

相关文章

从Vue快速上手React

前言 还没使用过React 的 vue同学可以通过这篇博客快速上手React。 1、数据读写 Vue 数据读写&#xff1a; import { ref, reactive } from vueconst str ref<string>(Aos) const obj reactive<Record<string, string>>({name: vue,version: 3.2.x }) …

汉字拼音首字母

http://hi.baidu.com/stavevai/blog/item/9c76bea574baabff9052ee84.html 为方便拼音用户输入一些汉字&#xff0c;有时候我们需要提供一些拼音首字母的输入方法&#xff0c;这时候需要把相关的汉字的首字母提取出来。 下面这个例子用空间换时间&#xff0c;用查表的方法实现了…

Pinyin4j 汉字转拼音使用教程

目录 Pinyin4j 概述与下载 Pinyin4j 使用快速入门 Pinyin4j 概述与下载 1、pinyin4j 是一个开源的流行 java 库&#xff0c;用来处理中文转换成拼音&#xff0c;拼音输出格式可定制。 官网&#xff1a;http://pinyin4j.sourceforge.net 在线文档&#xff1a;http://pinyin4j…

如何用搜狗拼音输入法输入希腊字母

https://jingyan.baidu.com/article/48b37f8d09d18c1a6464882c.html 方法一&#xff1a;软键盘 右击输入法悬浮窗打开菜单-选择软键盘 这里有很多软键盘&#xff0c;其中第二个就是希腊字母软键盘&#xff0c;点击打开 第二次使用可以点击输入法悬浮窗上的软键盘快捷键来快速…

[转]粤语拼音方案

本文转自&#xff1a;http://inzoi.bokee.com/6981163.html 这里使用的粤语拼音方案的目的是:让所有会普通话拼音与英语的人一看就会,所以排除了引起歧义的写法对于难发的音,就使用两个音相拼的方法,让读音自己连读就可以模仿出近似的音. (如果还是看不懂,最简单的方法就是:下载…

搜狗输入法 VS 拼音加加

用了16年计算机&#xff0c;一共用过四个输入法&#xff1a;五笔&#xff08;牌子忘记了&#xff09;&#xff0c;智能ABC&#xff0c;拼音加加&#xff0c;搜狗。 放弃五笔的原因很简单&#xff1a;我要学拼音&#xff01; 一说到高考&#xff0c;北方人全笑了&#xff0c;语文…

iOS - 找出汉字拼音首字母

#import <Foundation/Foundation.h>interface NSString (PinyinInitials)/**获取汉字拼音的首字母, 返回的字母是大写形式, 例如: "俺妹", 返回 "A".*如果字符串开头不是汉字, 而是字母, 则直接返回该字母, 例如: "b彩票", 返回 "B&q…

拼音对照表

啊a阿a呵a吖a嗄a腌a锕a爱ai矮ai挨ai哎ai碍ai癌ai艾ai唉ai哀ai蔼ai隘ai埃ai皑ai呆ai嗌ai嫒ai瑷ai暧ai捱ai砹ai嗳ai锿ai霭ai按an安an暗an岸an俺an案an鞍an氨an胺an厂an广an庵an揞an犴an铵an桉an谙an鹌an埯an黯an昂ang肮ang盎ang袄ao凹ao傲ao奥ao熬ao懊ao敖ao翱ao澳ao嚣ao拗ao媪ao…