リンクリストから条件を満たす複数のノードを削除しようとしています。プログラムはちょっと複雑なので、私はそれの要点を述べるでしょう。私のリンクリスト内のノードは、次の特性(番号に関連付けられている名前)を持つ:リンクリストから複数のノードを削除するjava
Name Number
Dog 1
Cat 1
Rat 2
Donkey 3
Fish 1
私は私の削除機能1.数でノードを削除できるようにしたい:
public void Delete(Int N) {
Node current = Head;
Node previous = Head;
while (current.getNum() != N) {
if (current.getNextNode() == null) {
System.out.print("Not found");
} else {
previous = current;
current = current.getNextNode();
}
}
if (current == Head) {
Head = Head.getNextNode();
} else {
Node A = current.getNextNode();
previous.setNextNode(A);
}
}
これは機能しますが、最初のオカレンスだけが削除されます。私は、それが適切でないか、適切なループ構造が原因である可能性があることを知っていますが、私はこれを何時間も働いており、途中で混乱しています。私は手動でトレーステーブルを実行しようとしましたが、どちらも動作していません。
リンクリスト全体をループし、基準に一致するノードを削除するように、関数をどのように編集できますか?あなたはリスト全体を移動したい場合は