1. 程式人生 > >leetcode-237 刪除連結串列中的節點(DeleteNodeInALinkedList)-java

leetcode-237 刪除連結串列中的節點(DeleteNodeInALinkedList)-java

題目:刪除連結串列中的節點

請編寫一個函式,使其可以刪除某個連結串列中給定的(非末尾的)節點,您將只被給予要求被刪除的節點。

比如:假設該連結串列為 1 -> 2 -> 3 -> 4  ,給定您的為該連結串列中值為 3 的第三個節點,那麼在呼叫了您的函式之後,該連結串列則應變成 1 -> 2 -> 4 。

public void deleteNode(ListNode node) {
    node.val = node.next.val;
    node.next = node.next.next;
}

解題思路:

題目只給了 要刪除的節點(非末尾)    

// 非末尾

表明我們可以通過node 找到 下一個節點,不需要判斷node為空

由於沒有辦法得到node的前節點,

我們只能通過將  下一個節點的值  複製到  當前節點node,然後移除node的下一個節點來達到目的。