数据结构—线性结构—链表:(在O(1)时间复杂度删除链表节点)
一、题目:
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
样例:
Linked list is
1->2->3->4
, and given node
3
, delete the node in place
1->2->4
二、分析:
需要考虑的点:
1、时间复杂度为O(1);
2、删除的是非首尾节点;
3、令当前节点值等于下一个节点值,删除下一个节点;
三、代码:
/**
* Definition for ListNode.
*/
public class ListNode {
int val;
ListNode next;
ListNode(int val) {
this.val = val;
this.next = null;
}
}
public class Solution {
/*
* @param node: the node in the list should be deletedt
* @return: nothing
*/
public void deleteNode(ListNode node) {
// write your code here
node.val = node.next.val;
node.next = node.next.next;
}
}