LeetCode 每日一題 237. 刪除鏈表中的節點

1. 題目

237. 刪除鏈表中的節點

2. 描述

請編寫一個函數,使其可以刪除某個鏈表中給定的(非末尾)節點,你將只被給定要求被刪除的節點。

現有一個鏈表 – 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.

3. 思路

直接刪除下一個結點。呈現出的表面結果爲刪除的當前節點,實際上刪除的是下一個結點。

4. 實現

public void deleteNode(ListNode node) {
    // 將要刪除節點的 val 賦值爲下一結點的 val
    node.val = node.next.val;
    // 然後將要刪除節點的下一結點指向要刪除節點的下一結點的下一結點
    node.next = node.next.next;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章