本文主要是介绍372.Delete Node in the Middle of Singly Linked List-在O(1)时间复杂度删除链表节点(容易题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在O(1)时间复杂度删除链表节点
题目
给定一个单链表中的一个等待被删除的节点(非表头或表尾)。请在在O(1)时间复杂度删除该链表节点。
样例
给定 1->2->3->4,和节点 3,删除 3 之后,链表应该变为 1->2->4。
题解
如本题样例所示,需删除节点3,则先将3的val变成后继节点4的val,再删除节点4即可。
/*** 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 deleted* @return: nothing*/public void deleteNode(ListNode node) {node.val = node.next.val;node.next = node.next.next;}
}
Last Update 2016.9.13
这篇关于372.Delete Node in the Middle of Singly Linked List-在O(1)时间复杂度删除链表节点(容易题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!