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

文章目录

    • 1. 题目
    • 2. 解题

1. 题目

给你一个链表的头节点 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)
链接:https://leetcode-cn.com/problems/delete-the-middle-node-of-a-linked-list
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

  • 快慢指针,快的一次走两步,慢的一次走一步
  • 最后删除 慢指针 或者 慢指针的下一个,根据 fast 是否为空确定
/*** Definition for singly-linked list.* struct ListNode {*     int val;*     ListNode *next;*     ListNode() : val(0), next(nullptr) {}*     ListNode(int x) : val(x), next(nullptr) {}*     ListNode(int x, ListNode *next) : val(x), next(next) {}* };*/
class Solution {
public:ListNode* deleteMiddle(ListNode* head) {if(!head || !head->next) return NULL;ListNode *empty = new ListNode(0, head);ListNode *fast = empty, *slow = empty, *prev=NULL;while(fast && fast->next){fast = fast->next->next;prev = slow;slow = slow->next;}if(!fast)prev->next = prev->next->next;elseslow->next = slow->next->next;return empty->next;}
};

852 ms 287.8 MB C++


我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/471433.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux 普通用户间切换,Linux中管理员用户与普通用户之间的切换

jsp页面添加一个集合数组到action(用序列化提交)页面的js //点击a标签增加删除 var i0; $("#a").on("click",function(){ var $newtr $("& ...JS 随机数function GetRandomNum(Min,Max){ var Range Max - Min; var Rand Math.random(); return…

sql 函数 总结

聚合函数 Avg(numeric_expr&#xff09;返回integer、decimal、money、float---返回组中各值的平均值 Count(*|column_name|distinct column_name) 返回integer---返回表中的记录数|返回指定列的数目|返回指定列的不同值的数目 Count_big(*|column_name|distinct column_name…

LeetCode 2096. 从二叉树一个节点到另一个节点每一步的方向(最小公共祖先)

文章目录1. 题目2. 解题1. 题目 给你一棵 二叉树 的根节点 root &#xff0c;这棵二叉树总共有 n 个节点。 每个节点的值为 1 到 n 中的一个整数&#xff0c;且互不相同。 给你一个整数 startValue &#xff0c;表示起点节点 s 的值&#xff0c;和另一个不同的整数 destValue …

linux下实现内存监视,shell脚本来监视Linux上的内存使用情况

shell脚本来监视Linux上的内存使用情况监视所有内容&#xff0c;例如CPU利用率&#xff0c;内存利用率&#xff0c;交换利用率&#xff0c;磁盘空间利用率等等。如果您只有很少的系统并且要监视它们&#xff0c;那么编写一个小的Shell脚本可以使您的任务非常容易。我们添加了两…

大数据的学习历程

大数据scala语言不仅可以在函数中嵌套函数&#xff0c;还可以定义偏函数。 def sum(a :Int,b:Int,c:Int) abcval pld sum _println(pld(1,2,3))println(pld.apply(1, 2, 3))val ped sum(1,_:Int,3)println(ped(2))println(ped.apply(2))val add (x : Int)> x2println(ad…

LeetCode 2097. 合法重新排列数对(欧拉路径)

文章目录1. 题目2. 解题1. 题目 给你一个下标从 0 开始的二维整数数组 pairs &#xff0c;其中 pairs[i] [starti, endi] 。如果 pairs 的一个重新排列&#xff0c;满足对每一个下标 i &#xff08; 1 < i < pairs.length &#xff09;都有 endi-1 starti &#xff0c…

linux防火墙 33001端口,Linux操作系统下IPTables配置方法详解

如果你的IPTABLES基础知识还不了解,建议先去看看。我们来配置一个filter表的防火墙1、查看本机关于IPTABLES的设置情况[roottp ~]# iptables -L -nChain INPUT (policy ACCEPT)target prot opt source destinationChain FORWARD (policy ACCEPT)target prot opt source destina…

《如何在大学里脱颖而出(How to Win at College)》读书笔记

《如何在大学里脱颖而出(How to Win at College)》读书笔记 图书简介 中文版&#xff1a; 英文版&#xff1a; 作者卡尔纽波特&#xff08;Cal Newport&#xff09;于 2004 年6月以优等生荣誉学会会员身份毕业于达特茅斯学院。曾在《华尔街日报》的学报和《今日商务》等杂志上发…

LeetCode 2099. 找到和最大的长度为 K 的子序列

文章目录1. 题目2. 解题1. 题目 给你一个整数数组 nums 和一个整数 k 。 你需要找到 nums 中长度为 k 的 子序列 &#xff0c;且这个子序列的 和最大 。 请你返回 任意 一个长度为 k 的整数子序列。 子序列 定义为从一个数组里删除一些元素后&#xff0c;不改变剩下元素的顺…

cms安装教程Linux,DoraCMS安装教程(linux)

最近在熟悉linux环境&#xff0c;也基本上把DoraCMS部署上去了&#xff0c;本教程基于ubuntu server 14.0.4&#xff0c;其它linux版本部署方式基本上差不多&#xff0c;下面详细说明一下&#xff1a;1、进入server环境下&#xff0c;在ubuntu目录下建立文件夹softbak,我们用来…

hdu 2049 考新郎

假设一共有N对新婚夫妇,其中有M个新郎找错了新娘,求发生这种情况一共有多少种可能. 和之前那道题一样&#xff0c;是错排&#xff0c;但是要乘上排列数。 选对的人有C(N,M)个组合&#xff0c;将它们排除掉&#xff0c;剩下的人就是错排了 1 #include<iostream>2 #include…

LeetCode 2100. 适合种地的日子(计数)

文章目录1. 题目2. 解题1. 题目 你和一群强盗准备种地。给你一个下标从 0 开始的整数数组 security &#xff0c;其中 security[i] 是第 i 天 天气热的数量。日子从 0 开始编号。同时给你一个整数 time 。 如果第 i 天满足以下所有条件&#xff0c;我们称它为一个适合种地的日…

如何在linux中使用u盘,如何在Linux系统下使用U盘

如何在Linux系统下使用U盘Linux系统中U盘被视为SCSI设备, SCSI设备对应的设备文件格式为“sdX” 系统中的第一个SCSI设备表示“sda”&#xff0c;第二个表示为“sdb”等。下面是jy135小编收集整理的U盘里面的.如何在Linux系统下使用U盘&#xff0c;欢迎阅读。在Linux系统下&…

H3C路由器真是不行

“华三”在我的印象中在通信设备这方面是挺牛逼的&#xff0c;后来虽然卖给了紫光&#xff0c;但我一直认为这是资本的博弈&#xff0c;与华三自己本身没有关系&#xff0c; 直到我买了一台华三的路由器&#xff08;型号是ER3108GW千兆路由器&#xff09;之后&#xff0c;办公室…

linux sys存放内容,了解linux系统目录,sys,tmp,usr,var!

原标题&#xff1a;了解linux系统目录&#xff0c;sys,tmp,usr,var&#xff01;linux小白到大神的成长之路&#xff1a;了解linux系统目录&#xff0c;sys,tmp,usr,var&#xff01;本经验由宗龙龙原创,全文共600多字&#xff0c;阅读需要14分钟&#xff0c;如果文中存在错误&am…

LeetCode 2101. 引爆最多的炸弹(图的遍历)

文章目录1. 题目2. 解题1. 题目 给你一个炸弹列表。一个炸弹的 爆炸范围 定义为以炸弹为圆心的一个圆。 炸弹用一个下标从 0 开始的二维整数数组 bombs 表示&#xff0c;其中 bombs[i] [xi, yi, ri] 。xi 和 yi 表示第 i 个炸弹的 X 和 Y 坐标&#xff0c;ri 表示爆炸范围的…

vim学习笔记(3)眼花缭乱的Vim模式

vim的模式问题&#xff0c;网上说的比较乱&#xff0c;我仔细的查了一下资料&#xff0c;并在这里做一个总结。 总的来说是六大种模式&#xff0c;分别是&#xff1a; 普通(Normal) 可视(Visual) 选择(Select) 插入(Insert) 命令行(Command-line) Ex模式。 还有六个小的组合模式…

linux脚本大全,shell大全

命令解析器——例如bash是一个程序&#xff0c;可以解析shell命令shell基本语法变量环境变量敲命令“env”可以取出所有环境变量环境变量可以当全局变量来使用set命令可以输出当前系统的全部环境变量以及函数unset命令用于删除一个环境变量本地变量自定义的变量——局限在某个脚…

LeetCode 2103. 环和杆(位运算)

文章目录1. 题目2. 解题1. 题目 总计有 n 个环&#xff0c;环的颜色可以是红、绿、蓝中的一种。 这些环分布穿在 10 根编号为 0 到 9 的杆上。 给你一个长度为 2n 的字符串 rings &#xff0c;表示这 n 个环在杆上的分布。 rings 中每两个字符形成一个 颜色位置对 &#xff0…

手脱ACProtect V1.4X(有Stolen Code)之补区段

首先需要说的是&#xff0c;这个壳是ximo大神视频教程里的 0041F000 > 60 pushad ; //程序入口点 0041F001 E8 01000000 call NgaMy.0041F007 0041F006 E8 83042406 call 0665F48E 0041F00B C3 …