题目:

分析:
删除链表中的节点的常见的方法是定位到待删除节点的上一个节点,修改上一个节点的 \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刷题:删除链表中的节点相关推荐

  1. LeetCode实战:删除链表中的节点

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Write a fun ...

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

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

  3. 237. 删除链表中的节点 golang

    删除链表的节点 https://leetcode-cn.com/problems/delete-node-in-a-linked-list 最优解 把下一个节点的值移动到当前删除节点,然后更改当前节点 ...

  4. 假设以带头结点的循环链表表示队列_[leetcode链表系列]2 删除链表中的节点

    复习链表的插入 链表的一个节点是由数据域和指针域构成,指针域的地址值为下个元素的地址.那么我们需要插入或者删除一个元素怎么处理呢? 先查看原始链表结构,准备将结点x插入链表中. 此时我们需要先保存n节 ...

  5. 【解题报告】Leecode 237. 删除链表中的节点——Leecode每日一题系列

    今天是坚持每日一题打卡的第八天 题目链接:https://leetcode-cn.com/problems/minimum-operations-to-convert-number/ 题解汇总:htt ...

  6. LeetCode 237. 删除链表中的节点(Python3)

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

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

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

  8. 237. 删除链表中的节点(C语言)

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

  9. leetcode刷题笔记-链表的使用

    一.单链表的基础:增删改查 问题:设计一个单链表,要求实现其增删改查功能.707. 设计链表 问题分析 往链表中添加元素的步骤 往链表中删除元素的步骤 注意:对于单链表来说,添加一个无用的头节点,再对 ...

最新文章

  1. SubVersion和Subclipse的简单使用方法
  2. 量子位「MEET 2022智能未来大会」启动,邀你一起见证AI价值
  3. Node.js 极简入门Helloworld版服务器例子
  4. 在ubuntu10.4安装snort ACID
  5. Java IO Serialization
  6. python相关背景及语言特点
  7. 实现一个用户取过的数据不被其他用户取到
  8. Kinect开发学习笔记之(三)Kinect开发环境配置
  9. 所谓敏感(数字的敏感)
  10. kotlin使用mapstruct(二)
  11. OpenGL笔记4 数据传递二
  12. Redis分布式锁为什么要设置超时时间
  13. java socket编程—单客户端与服务器通信
  14. akuna capital oa
  15. 计算机硬盘根目录是什么,根目录是什么(d盘根目录是什么意思)
  16. 送一些专属红包封面。
  17. 磁珠 符号_(整理)贴片磁珠规格
  18. 利用计算机制作多媒体作品目标,多媒体创作工具功能有什么特点
  19. 【ZJOI2005】沼泽鳄鱼
  20. Android 更换壁纸 代码

热门文章

  1. maven工程 java 实现文件上传 SSM ajax异步请求上传
  2. [Linux] LD_LIBRARY_PATH
  3. 关于module_param()宏
  4. 在C#中用RX库和await来实现直观的状态机
  5. 通过UserAgent判断智能设备(Android,IOS)
  6. c语言对抗程序代码,C语言贪吃蛇源程序代码双人对抗
  7. Python稳基修炼的经典案例4(计算机二级、初学者必须掌握的例题)
  8. Python之网络编程(实现一个多用户同时在线的FTP用户管理程序)
  9. cf修复服务器,CF:“卡顿”问题终于得到重视!新版本宣布修复,玩家这下开心了...
  10. 晋职称不考外语 计算机,评职称不考外语计算机的价值导向