困扰:之前了解到的删除节点的算法都是:知道了被删除结点的前驱节点和后继节点然后通过修改前驱节点的next就可以达到删除节点的目的。但是题目只给了被删除节点,却没有给被删除节点的前驱节点。因此一时不知道该怎样操作。
解决办法:将被删除节点的后继节点的值复制到被删除节点中,再将被删除节点的后继节点删除就可以了。
代码:Java
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}