• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaがわかりません。。。)

Javaで単方向リストを実装する方法と最後のノード削除について

このQ&Aのポイント
  • Javaで単方向リストを実装する方法と、リストの最後のノードを削除する方法について解説します。
  • MyListクラスとMyListAppクラスを使用して、リストの先頭、最後、途中に新しいデータを追加したり、データを削除したりする方法を説明します。
  • 最後のノードを削除する方法がうまく動作しない場合は、deleteTailメソッドの実装に問題がある可能性があります。実装を確認し、修正することが必要です。

質問者が選んだベストアンサー

  • ベストアンサー
  • kana_m
  • ベストアンサー率40% (26/65)
回答No.2

このソースで何とかするなら以下のような感じでしょうか。 void deleteTail(){ //最後のノードを削除 ____MyList tmp = this; ____MyList lastList = null; ____while(tmp.next != null){ ________lastList = tmp; ________tmp = tmp.next; ____} ____lastList.next = null; }

noname#93995
質問者

お礼

ありがとうございます。 すごく助かりました。。

その他の回答 (1)

  • kana_m
  • ベストアンサー率40% (26/65)
回答No.1

元々Cをされていた方でしょうか。 void deleteTail(){ //最後のノードを削除 ____MyList tmp = this; ____while(tmp.next != null){ ________tmp = tmp.next; ____} ____tmp = null; } このメソッドの最後の tmp = null; の部分ですが、 これはローカル変数のtmpの参照先をnullにしただけです。 単純に考えて「最後のノードが削除される」ということは、 最後の1つ前のノードから最後のノードへの参照がnullになるということなので 最後の1つ前のノードのnextにnullを入れてあげれば良いと思います。

noname#93995
質問者

補足

Cやってましたょ。 一つ前というのはソースではどう書いていったらいいでしょうか。

関連するQ&A

専門家に質問してみよう