1
ノードを指定した単一のリンクリスト内のノードを削除するプログラムを作成しました。単一のリンクリストの途中でノードを削除する
public class Solution {
/**
* @param node: the node in the list should be deleted
* @return: nothing
*/
public void deleteNode(ListNode node) {
// write your code here
// if node.next==null, we cannot delete the current node without given the previous node
if(node == null || node.next == null) return;
ListNode next = node.next;
node.val = next.val;
node.next = next.next;
// I wonder if this link needs to be removed as well
next.next = null;
}
}
問題はかなり簡単です。我々はすでにノードを削除し、この行がなければ
next.next = null;
:しかし、多くのコードサンプルは、オンライン私が書いたこの行が含まれていません。その後、「次へ」は何も指していませんが、「次へ」はnext.nextを指しています。 next.next = nullを設定しないと、Javaガベージコレクタはこの削除されたノードを削除しますか?
あなたは 'node'を削除したい、' next.next'は 'node.next.next'です。これは実際のノードの3番目のノードです。削除しないでください。 – 11thdimension