1

リンクリストのすべてのノードを削除して、このコードピースで削除することはできますか?そうでない場合、どのようにしてすべてのノードを一度に削除することができますか?

私のコードは

EditNode mynode=start;
while(mynode!=null){
    mynode.editnext=null;
    mynode=mynode.editnext;
}

ヘルプが必要です!前もって感謝します...

4

2 に答える 2

5

mynode.editnextコードを設定しnullて参照しようとしているため、コードは機能しません。だからそれはうまくいきません。

リンクリスト内のすべてのノードを削除するには、Javaでヘッドポインタをクリアするだけです。Javaは残りをガベージコレクションします。

start = null;

この回答は、カスタムリンクリストを対象としていることに注意してください。本番環境では、メソッドLinkedListを持つのJava実装を使用する必要があります。.clear()これは、リストを処理するためのはるかにクリーンな方法です。

これは、リスト内のアイテムを指す迷いポインターがある可能性があるためです。これにより、リストの残りの部分への参照が保持され、ガベージコレクションが防止されます。editnextプロパティのような組織構造をデータ構造に組み込むべきではありません。それらは別々のクラスである必要があります。

各ノードのすべてのポインターをクリアするには、次のコードを使用します。

EditNode mynode;
while (start != null){
    mynode = start.editnext;
    start.editnext = null;
    start = mynode;
}
于 2013-01-03T18:17:43.233 に答える
0

LinkedListのclear()メソッドを確認しましたか?

public void clear()-このリストからすべての要素を削除します。この呼び出しが戻った後、リストは空になります。

于 2013-01-03T18:17:28.653 に答える