刪除鏈表中的節(jié)點

題目描述

難度級別:簡單

請編寫一個函數(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容