问题形貌
请编写一个函数,使其能够删除某个链表中给定的(非末端)节点,你将只被给定请求被删除的节点。
现有一个链表 — head = [4,5,1,9],它能够示意为:
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.
申明:
链表最少包括两个节点。
链表中所有节点的值都是唯一的。
给定的节点为非末端节点而且一定是链表中的一个有用节点。
不要从你的函数中返回任何效果。
代码完成
这道题最先照样有点不理解,由于在迷惑为何只给了一个参数,不给链表头怎样删?
不过,看了申明给的参数节点不会是链表的尾节点,那末就能够交流node和node.next的值,然后再删掉node.next就好了。
/**
* Definition for singly-linked list.
* function ListNode(val) {
* this.val = val;
* this.next = null;
* }
*/
/**
* @param {ListNode} node
* @return {void} Do not return anything, modify node in-place instead.
*/
var deleteNode = function(node) {
if(node === null)
return node;
let next = node.next;
let temp = node.val;
node.val = next.val;
next.val = temp;
node.next = next.next;
};