題目描述
難度級別:簡單
請編寫一個函數(shù),使其可以刪除某個鏈表中給定的(非末尾)節(jié)點。傳入函數(shù)的唯一參數(shù)為 要被刪除的節(jié)點 。
現(xiàn)有一個鏈表 -- head = [4,5,1,9],它可以表示為:

示例 1:

輸入:head = [4,5,1,9], node = 5
輸出:[4,1,9]
解釋:給定你鏈表中值為 5 的第二個節(jié)點,那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?4 -> 1 -> 9.
示例 2:

輸入:head = [4,5,1,9], node = 1
輸出:[4,5,9]
解釋:給定你鏈表中值為 1 的第三個節(jié)點,那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?4 -> 5 -> 9.
提示:
鏈表至少包含兩個節(jié)點。
鏈表中所有節(jié)點的值都是唯一的。
給定的節(jié)點為非末尾節(jié)點并且一定是鏈表中的一個有效節(jié)點。
不要從你的函數(shù)中返回任何結(jié)果。
解題思路
題目中待傳遞給當(dāng)前函數(shù)的實參node,它是鏈表中的某一個待刪除的節(jié)點,然后從鏈表中刪除這個節(jié)點。這里因為待傳入的實參沒有完整的鏈表,所以無法獲取到之前節(jié)點,所以無法修改前一個節(jié)點的next指向。這時需要的是將要刪除節(jié)點的值替換為它的下一個節(jié)點的值,之后要刪除這個節(jié)點的next指向為下下一項。
/**
* @param {ListNode} node
* @return {void} Do not return anything, modify node in-place instead.
*/
const deleteNode = node => {
[node.val, node.next] = [node.next.val, node.next.next]
}
題目來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/delete-node-in-a-linked-list