每日Leetcode-链表-算法-简单-删除链表中的节点
题目备注:
1.链表至少包含两个节点
2.链表中所有节点的值都是唯一的
3.给定的节点为非末尾节点并且一定是链表中的一个有效节点
4.不要从你的函数中返回任何结果
方法:与下一个节点交换
从链表里删除一个节点 node 的最常见方法是修改之前节点的 next 指针,使其指向之后的节点。
因为,我们无法访问我们想要删除的节点之前的节点,我们始终不能修改该节点的 next 指针。相反,我们必须将想要删除的节点的值替换为它后面节点中的值,然后删除它之后的节点。
因为我们知道要删除的节点不是列表的末尾,所以我们可以保证这种方法是可行的。
对题目的反思:
由于ListNode是个单链表节点,而单链表节点本质上是无法做到在链表里删除自身的,所以这题只能通过这种替换的方式来伪造删除了节点。
这题会误导很多开发者,这题的设计模式更是不可取!
个人认为这题应该删除
而203. 移除链表元素这题才是真正的移除链表元素!
作者:AmazingPP
链接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list/solution/tong-pi-ci-ti-li-ying-shan-chu-yin-chu-c-taij/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
每日Leetcode-链表-算法-简单-删除链表中的节点
原文地址:https://www.cnblogs.com/UjiMatca/p/14395293.html