質問内容はタイトルの通りです。削除される予定のオブジェクトの変数をいじっているコードを見たのですが、意味はないように思えます。
「行儀がいい」のかもしれないですが、そこに変数を書き換えるという処理を必要とするので、むしろ望ましくないように思えるのですが、どうでしょうか?
双方向連結リストのNodeがあって、次のノードを指し示すnextと前のノードを指し示すprevをメンバとして保持しています。
そして、あるノードを削除するときはそのノードの次のノードのprevを書き換え、そのノードの前のノードのnextを書き換えることで削除します。
そして、どの変数にも参照されなくなったNodeはGCにより削除されます。
よって、削除するときには単に前後のノードのnextとprevを書き換えるだけで十分なのですが、削除されるノードのprevとnextをnullにしているコードを見ました。
すなわち、次のような感じです。
Java
1void delete(Node node) { 2 //前後のノードのnextとprevを置き換える 3 4 node.next = null; 5 node.prev = null;
この最後の部分の削除されるノードのnextとprevをnullにする意味はなんなのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/21 09:19