leetcode刷题:删除链表中的节点
题目:
分析:
删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \textit{next}next 指针,使其指向待删除节点的下一个节点,即可完成删除操作。
这道题中,传入的参数 \textit{node}node 为要被删除的节点,无法定位到该节点的上一个节点。注意到要被删除的节点不是链表的末尾节点,因此 \textit{node}.\textit{next}node.next 不为空,可以通过对 \textit{node}node 和 \textit{node}.\textit{next}node.next 进行操作实现删除节点。
在给定节点 \textit{node}node 的情况下,可以通过修改 \textit{node}node 的 \textit{next}next 指针的指向,删除 \textit{node}node 的下一个节点。但是题目要求删除 \textit{node}node,为了达到删除 \textit{node}node 的效果,只要在删除节点之前,将 \textit{node}node 的节点值修改为 \textit{node}.\textit{next}node.next 的节点值即可。
例如,给定链表 4 \rightarrow 5 \rightarrow 1 \rightarrow 94→5→1→9,要被删除的节点是 55,即链表中的第 22 个节点。可以通过如下两步操作实现删除节点的操作。
将第 22 个节点的值修改为第 33 个节点的值,即将节点 55 的值修改为 11,此时链表如下:
4 \rightarrow 1 \rightarrow 1 \rightarrow 9
4→1→1→9
删除第 33 个节点,此时链表如下:
4 \rightarrow 1 \rightarrow 9
4→1→9
达到删除节点 55 的效果。
作者:LeetCode-Solution
链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/shan-chu-lian-biao-zhong-de-jie-dian-by-x656s/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
代码如下:
class Solution {
public:void deleteNode(ListNode* node) {node->val = node->next->val;node->next = node->next->next;}
};
leetcode刷题:删除链表中的节点相关推荐
- LeetCode实战:删除链表中的节点
背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a fun ...
- 237. 删除链表中的节点【我亦无他唯手熟尔】
237. 删除链表中的节点 请编写一个函数,用于 删除单链表中某个特定节点 .在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 . 题目数据保证需要删除的节点 不 ...
- 237. 删除链表中的节点 golang
删除链表的节点 https://leetcode-cn.com/problems/delete-node-in-a-linked-list 最优解 把下一个节点的值移动到当前删除节点,然后更改当前节点 ...
- 假设以带头结点的循环链表表示队列_[leetcode链表系列]2 删除链表中的节点
复习链表的插入 链表的一个节点是由数据域和指针域构成,指针域的地址值为下个元素的地址.那么我们需要插入或者删除一个元素怎么处理呢? 先查看原始链表结构,准备将结点x插入链表中. 此时我们需要先保存n节 ...
- 【解题报告】Leecode 237. 删除链表中的节点——Leecode每日一题系列
今天是坚持每日一题打卡的第八天 题目链接:https://leetcode-cn.com/problems/minimum-operations-to-convert-number/ 题解汇总:htt ...
- LeetCode 237. 删除链表中的节点(Python3)
题目: 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 -- head = [4,5,1,9],它可以表示为: 示例 1: 输入: head ...
- LeetCode(237)——删除链表中的节点(JavaScript)
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例1: 输入: head = [4,5 ...
- 237. 删除链表中的节点(C语言)
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点.传入函数的唯一参数为 要被删除的节点 . 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例 1: 输入:head = ...
- leetcode刷题笔记-链表的使用
一.单链表的基础:增删改查 问题:设计一个单链表,要求实现其增删改查功能.707. 设计链表 问题分析 往链表中添加元素的步骤 往链表中删除元素的步骤 注意:对于单链表来说,添加一个无用的头节点,再对 ...
最新文章
- SubVersion和Subclipse的简单使用方法
- 量子位「MEET 2022智能未来大会」启动,邀你一起见证AI价值
- Node.js 极简入门Helloworld版服务器例子
- 在ubuntu10.4安装snort ACID
- Java IO Serialization
- python相关背景及语言特点
- 实现一个用户取过的数据不被其他用户取到
- Kinect开发学习笔记之(三)Kinect开发环境配置
- 所谓敏感(数字的敏感)
- kotlin使用mapstruct(二)
- OpenGL笔记4 数据传递二
- Redis分布式锁为什么要设置超时时间
- java socket编程—单客户端与服务器通信
- akuna capital oa
- 计算机硬盘根目录是什么,根目录是什么(d盘根目录是什么意思)
- 送一些专属红包封面。
- 磁珠 符号_(整理)贴片磁珠规格
- 利用计算机制作多媒体作品目标,多媒体创作工具功能有什么特点
- 【ZJOI2005】沼泽鳄鱼
- Android 更换壁纸 代码
热门文章
- maven工程 java 实现文件上传 SSM ajax异步请求上传
- [Linux] LD_LIBRARY_PATH
- 关于module_param()宏
- 在C#中用RX库和await来实现直观的状态机
- 通过UserAgent判断智能设备(Android,IOS)
- c语言对抗程序代码,C语言贪吃蛇源程序代码双人对抗
- Python稳基修炼的经典案例4(计算机二级、初学者必须掌握的例题)
- Python之网络编程(实现一个多用户同时在线的FTP用户管理程序)
- cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...
- 晋职称不考外语 计算机,评职称不考外语计算机的价值导向