请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。

现有一个链表 – head = [4,5,1,9],它可以表示为:


示例 1:
输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例 2:
输入:head = [4,5,1,9], node = 1
输出:[4,5,9]
解释:给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.

提示:
链表至少包含两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末尾节点并且一定是链表中的一个有效节点。
不要从你的函数中返回任何结果。

该题比较有意思,没有给你该链表的头节点,也没有链表长度,就给你除尾节点之外的任意一点;
正常情况下我们删除一个节点只需要让需要删除的节点的前一个节点的指针域指向需要删除的节点的后一个节点就好了,但是该题明显无法找到被删除节点的前一个节点,该怎么办呢?
其实很简单,只需要将需要删除的节点成为它的后一个节点就好了,然后释放掉后一个节点;
我在解析里面借鉴了一个很有趣的例子,该题可看为:

目标:杀掉A

正常杀手需要找到A的把柄才可以杀掉A
可现在找到A本人后竟然没有可以获取A把柄的途径
A得知我们要杀他,心生一计,可助你完成任务
A说我有B的把柄,你杀了B,我改头换面,以B的身份活着
GC也会自动清理掉B的尸体,没人会知道的

//作者:gui-ji-hong
链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/ru-he-gan-diao-mu-biao-a-by-gui-ji-hong-7e5y/
来源:力扣(LeetCode)//

这就十分清晰明了了;代码如下:

/*** Definition for singly-linked list.* struct ListNode {*     int val;*     struct ListNode *next;* };*/
void deleteNode(struct ListNode* node)
{struct ListNode* p=node->next;//p就是需要删除的节点的后一个节点node->val=p->val;node->next=p->next;free(p);
}

237. 删除链表中的节点(C语言)相关推荐

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

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

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

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

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

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

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

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

  5. 237删除链表中的节点(单链表基本操作)

    1.题目描述 请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点. 说明: 链表至少包含两个节点. 链表中所有节点的值都是唯一的. 给定的节点为非末尾节点并且一定 ...

  6. 22. Leetcode 237. 删除链表中的节点 (链表-基础操作类-删除链表的节点)

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

  7. leetcode 237. 删除链表中的节点(左神算法:一种怪异的节点删除方式、此方法存在的问题分析)

    题目 题解 一种怪异的节点删除方式 本题的思路很简单,举例就能说明具体的做法. 例如,链表1->2->3->null,只知道要删除节点2,而不知道头节点.那么只需把节点2 的值变成节 ...

  8. LeetCode 237. 删除链表中的节点(思维)

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

  9. leetcode-4.11[1276. 不浪费原料的汉堡制作方案、237. 删除链表中的节点、657. 机器人能否返回原点](python解法)

    题目1 题解1 class Solution:def numOfBurgers(self, tomatoSlices: int, cheeseSlices: int) -> List[int]: ...

最新文章

  1. 安装ipvsadm 用make编译出现错误解决方法
  2. Linux高级篇——IO系统编程
  3. D3Vueecharts个人乱记
  4. Firefox 和 Chrome 性能测试对比
  5. 课程 3: Content Providers 简介
  6. python与pycharm的作用_JSON 在pycharm 与python 三者有什么关系?JSON有什么作用?
  7. [原创]AM3352 + TPS65910 调试方法+调试记录
  8. excel怎么输入度分秒,并转换为可编辑文本格式
  9. 计算机win7卡顿如何解决方法,win7卡顿严重解决方法_win7运行卡顿严重最流畅设置方法-win7之家...
  10. 工作多年,分享16条实用职场经验给你
  11. 【摘录】模拟物流快递系统程序设计
  12. [附源码]java毕业设计学校缴费系统
  13. 附上解决迅雷9及迅雷极速版任何资源下载任务出错、内容违规问题
  14. android撕衣服案例解析
  15. 程序复杂度之圈复杂度
  16. Win7 IE浏览器的降级和升级
  17. 2021.11.08 - 143.猜数字游戏
  18. 阿里网易面试送送送命题 —— 微服务架构
  19. A92怎么获取root,A92参数
  20. 1-4 Java方法和数组

热门文章

  1. 直接拖动元器件_电子元器件常规检测和判断
  2. javascript高级程序设计pdf_一个老牌程序员推荐的JavaScript的书籍,看了真的不后悔!...
  3. html判断表单是否为空,layui判断表单是否为空
  4. 451 Research发布《2019年数据中心服务和基础设施预测》
  5. 2017 全球超大规模数据中心已超过 390 个,中国仅占 8%
  6. swiper炫酷_swiper3d横向滚动多张炫酷切换banner
  7. MySQL引擎innodb和mysum_mysql数据库引擎InnoDB和MyISAM
  8. Paper:《NÜWA: Visual Synthesis Pre-training for Neural visUal World creAtion,女娲:用于神经视觉世界创造的视觉》翻译与解读
  9. ML之Hog_HammingDistance:基于Hog特征提取“RGB”图像的768个值的单向vector利用汉明距离算法进行判别
  10. ML之回归预测:利用九大类机器学习算法对无人驾驶汽车系统参数(2018年的data,18+2)进行回归预测值VS真实值