删除链表的节点
JZ18 删除链表的节点
描述
给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。
此题对比原题有改动
题目保证链表中节点的值互不相同
该题只会输出返回的链表和结果做对比,所以若使用 C 或 C++ 语言,你不需要 free 或 delete 被删除的节点
数据范围:
$0<=链表节点值<=10000$
$0<=链表长度<=10000$
示例1
1 | 输入:{2,5,1,9},5 |
示例2
1 | 输入:{2,5,1,9},1 |
题解
初见思路:要删除一个节点的值,首先是定位到该节点,其次是删除掉该节点。根据提示中可知节点中的值互不相同,所以以此为标签来定位即可,删除的话只需要断开链表就行,将$prev$连接到$next$就可以了。
一遍过,在考虑头部的时候,使用了昨天偷师GPT的哑指针。
代码
1 | /** |