思路:遍历被删除节点之后的节点,将值赋给前一个,直到下一个节点不为空,例如:链表为 [4,5,1,9], 被删除节点为5,则遍历之后为[4,1,9,9],这样就只用删除最后一个节点。
代码:
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
ListNode t=node;
while(node.next!=null){
node.val=(node.next).val;
t=node;
node=node.next;
}
t.next=null;
}
本文介绍了一种在链表中删除指定节点的有效方法。通过遍历被删除节点后的所有节点,并将其值依次覆盖到前一个节点,最终仅需删除最后一个节点即可。此方法避免了直接寻找待删节点前驱的问题。
318

被折叠的 条评论
为什么被折叠?



