解决本题如果局限于常规思维会被卡死,这里的删除仅仅是删掉值,因此只需要将后一结点的值赋给前一结点,并让前一结点指向后一结点的下一个结点即可
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}