【题目描述】
【思路】
单链表不存在前驱,不能像常规 ,那样修改指针指向。
而常规遍历找到该节点的前驱是需要O(n) ,且要求元素值各异。
但是可以换种思路,将下一节点的值赋值到当前节点,然后删除下一节点,即把当前节点的next指向下下节点。
/**
* 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;
//然后删除下一节点 即把当前节点的next指向下下节点
node.next = node.next.next;
}
}