Circularリンクされたリストが与えられていると、Javaでノードを削除するためのメソッドを記述します。Javaの循環リンクリストからノードを削除する方法は?
答えて
本当にこれを考慮する4つのケースがあります。
ケース1:
空のリストですか?そう
ケース2 nullを返すか返された場合:
を、リスト内の唯一の要素があります。 ポインタをnullに設定し、リストをnullに設定します。
ケース3:
は、リストの前で何かを削除します。 この場合、いくつかの手順があります。
ステップ:
- リストへの一時的なポインタを作成します。
- リストの最後に移動します。
- 一時ポインタをリストの先頭に設定します。
- リストの先頭を前方に移動します。
- テンポラリのポインタをnullに設定します。
- リストの最後を、リストの新しいフロントを指すように設定します。
ケース4:
我々は中央項目を削除するこの形式1-> 2-> 3->で何かを削除します。 注。それは、リストへの一時ポインタを作成します。1.
ステップ
- に周りにループバックするので、これは、同様に最後の項目を削除するために働きます。
- 削除するデータが見つかるまで、一時ポインタを前方に移動します。
- 削除ノード(例ノード削除)を作成し、それをtempのポインタに設定します。
- 削除するノード上でスキップするようにtempを設定します。
削除ノードのポインタをnullに設定します。
public void delete(int data) { // Null list case if(list == null) return; // Delete the only element case if(list.data == data && list.next.data == list.data) { list.next = null; list = null; return; } // Delete the front of the list case if(list.data == data) { // Move to the end of the list Node end = list; while(end.next.data != list.data) { end = end.next; } Node temp = list; list = list.next; temp.next = null; end.next = list; return; } // Delete something in the middle Node temp = list; while(temp.next.data != data && temp.next.data != list.data) { temp = temp.next; } // We circled the list and did not find the element to delete if(temp.next.data == list.data) return; Node del = temp.next; temp.next = temp.next.next; del.next = null; }
OPは 'Node'を削除するメソッドを要求しましたが、このメソッドでは、内容が' int'にマッチするNodeを削除するメソッドを提供しています。これは、循環リンクリスト内に固有の要素のみが存在することも前提としています。 –
それはOPだった、私は彼がちょうどそれの地獄のための彼のコードを投稿したと思う – sbowde4
これは過度に複雑に思えます。私は周りを回っていますか?それ以外はノードを削除するだけです。いいえ? – ChiefTwoPencils
- 1. C++循環リンクリスト - すべてのノードを削除する
- 2. 循環リンクリストに余分なノードを追加する方法+ java
- 3. 第3のノードからの循環リンクリスト
- 4. Java - 二重リンクリストからノードを削除
- 5. リンクリストからノードを削除
- 6. Javaで循環リンクリストを実装する方法は?
- 7. リンクリストからノードを削除する
- 8. Cリンクリストからノードを削除する
- 9. リンクリストから複数のノードを削除するjava
- 10. 二重リンクリストからノードを削除する方法
- 11. 二重リンクリストからノードを削除する方法
- 12. 循環リンクリストとノード内から前/次へのアクセス
- 13. Javaの単一リンクリストからテールを削除する方法
- 14. リンクリストからのノードの削除
- 15. リンクリストからのノードの削除
- 16. 循環リンクリストにノードを挿入するアルゴリズムを実装する
- 17. C++ - ソート付き循環リンクリストにノードを追加する
- 18. javaのこのリンクリストからノードを見つけて削除する
- 19. リニアリンクリストを循環リンクリストに変換する
- 20. 循環リンクリストをフリーにする
- 21. ノードの高速削除をサポートするJavaリンクリスト?
- 22. リンクリストのノードをvoid return文で削除する[Java]
- 23. Javaで循環依存関係を取り除く方法は?
- 24. Cを再帰的にリンクリストからノードを削除する
- 25. 単一リンクリストの途中からノードを削除しますか?
- 26. 二重リンクリストを円で循環させる方法
- 27. 円二重リンクリストからノードを削除する
- 28. リンクリストからノードを再帰的に削除する
- 29. リンクリスト内のすべてのevensを削除する方法java
- 30. 頭に接続された循環的な二重リンクリストの削除
はStackOverflowのへようこそ!私たちはあなたのためのコードを書いていません!私たちはあなたを助けたいと思っていますが、もし努力しないと、私たちはどちらもしません。 – SZenC
私が探していたものが見つからなかったので、私は質問と回答のことをしていました。どうやら私はそれを正しくしなかった。 –