このJavaプログラムは、単独でリンクされたリストからすべての均一なノードを効率的に削除します。明確にするために説明とプレゼンテーションを改良しましょう。
この記事では、Javaの単独でリンクされたリストから均等なすべてのノードを削除する方法を示しています。リストの作成、ノードの追加、均一なノードの削除、最終リストの表示について説明します。
単独でリンクされたリストは、各ノードがシーケンス内の次のノードを指す線形データ構造です。 各ノードには、データ(この場合は整数)と次のノードへのポインターが含まれています。
単独でリンクされたリストからすべての均一なノードを削除します。 入力例:
出力の例:
<code>Original List: 1 2 3 4 5 6</code>
アルゴリズム:
<code>Original List: 1 2 3 4 5 6 List after deleting even nodes: 1 3 5</code>
初期化:
next
この改良されたバージョンには、より簡潔な説明、より明確なコードコメントが含まれ、すべてのノードが均一なエッジケースを処理します(空のリストになります)。 内部ノードを処理する前にチェックを追加する(
public class LinkedList { static class Node { int data; Node next; Node(int data) { this.data = data; this.next = null; } } Node head; public void insert(int data) { Node newNode = new Node(data); if (head == null) { head = newNode; } else { Node temp = head; while (temp.next != null) { temp = temp.next; } temp.next = newNode; } } public void deleteEvenNodes() { //Remove leading even nodes while (head != null && head.data % 2 == 0) { head = head.next; } //Remove internal even nodes if (head != null) { //Check if list is not empty after removing leading evens Node current = head; while (current != null && current.next != null) { if (current.next.data % 2 == 0) { current.next = current.next.next; } else { current = current.next; } } } } public void printList() { Node temp = head; while (temp != null) { System.out.print(temp.data + " "); temp = temp.next; } System.out.println(); } public static void main(String[] args) { LinkedList list = new LinkedList(); list.insert(1); list.insert(2); list.insert(3); list.insert(4); list.insert(5); list.insert(6); System.out.println("Original List:"); list.printList(); list.deleteEvenNodes(); System.out.println("List after deleting even nodes:"); list.printList(); } }
を防ぎます。
以上が単独でリンクされたリストからすべてのノードを削除するJavaプログラムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。