删除链表中的节点
解题代码(java)
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}
1.正常思路(错误思路)
$. 正常思路:要删除 node 节点则让 node 之前的节点(2)重新指向 node 之后的节点(4)
*但是!!!
我们无法访问 node 之前的节点,因此也无法改变其指向
【所以此方法无效】
2.正确解题思路
-
思路详解:
因为我们的目的是删除当前 node 节点的值,但不改变其他节点的值,而且我们目前只能访问 node 之后的节点
所以,我们只需用 node 下一个节点的值覆盖掉当前 node 节点的值,再把下一个节点删掉即可(删除 node 下一个节点用上文提到的正常思路即可) -
实现步骤:
1>.将 node 下一个节点的值覆盖掉当前节点
2>.将 node 指向(next.next)节点
难点
【逻辑思维转变】
声明
- 原作者:E.L.E
- <未经允许不得转载使用,欢迎大家评论>