题目描述
编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。也就是说尾结点是不能删除的,传入函数的唯一参数为 要被删除的节点 。
例如现在有一个链表:head = [4,5,1,9],它可以表示为:
示例1:
输入:head = [4,5,1,9], node = 5
输出:[4,1,9]
给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.
示例2:
输入:head = [4,5,1,9], node = 1
输出:[4,5,9]
给定你链表中值为 1 的第三个节点,那么在调用了你的函数之后,该链表应变为 4 -> 5 -> 9.
来源:力扣(LeetCode)
链接:删除链表中的结点
public void deleteNode(ListNode node) {
//删除一个中间结点可以通过“覆盖”方式进行
//将要删除的node结点的下一个结点覆盖在node上,间接删除了node
node.val = node.next.val;
node.next = node.next.next;
}