ホームページ > Java > &#&チュートリアル > 単独でリンクされたリストからすべてのノードを削除するJavaプログラム

単独でリンクされたリストからすべてのノードを削除するJavaプログラム

Patricia Arquette
リリース: 2025-02-07 11:36:16
オリジナル
778 人が閲覧しました

このJavaプログラムは、単独でリンクされたリストからすべての均一なノードを効率的に削除します。明確にするために説明とプレゼンテーションを改良しましょう。

この記事では、Javaの単独でリンクされたリストから均等なすべてのノードを削除する方法を示しています。リストの作成、ノードの追加、均一なノードの削除、最終リストの表示について説明します。

単独でリンクされたリストは、各ノードがシーケンス内の次のノードを指す線形データ構造です。 各ノードには、データ(この場合は整数)と次のノードへのポインターが含まれています。

Java program to delete all even nodes from a singly linked list

問題:

単独でリンクされたリストからすべての均一なノードを削除します。 入力例:

出力の例:
<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>
ログイン後にコピー

初期化:
    空の単独でリンクされたリストを作成します
  1. ノード挿入:整数値を持つノード(例:1、2、3、4、5、6)をリストに追加します。
  2. ノード削除の均一:
  3. リーディングエブンを削除します:リストのヘッドから反復し、奇妙な値ノードが発生するまで最初に均等なノードを削除します。
      内部evensを削除します:
    • 残りのリストをトラバースします。ノードのノードに均一な値がある場合は、均一な値ノードの後に​​現在のノードをノードに直接リンクすることでバイパスします。
    • 出力:リスト内の残りのノードを印刷します。next
  4. javaコード:
output:

この改良されたバージョンには、より簡潔な説明、より明確なコードコメントが含まれ、すべてのノードが均一なエッジケースを処理します(空のリストになります)。 内部ノードを処理する前にチェックを追加する(
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 サイトの他の関連記事を参照してください。

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
最新の問題
ヘルプ: JAVA 暗号化データ PHP 復号化
から 1970-01-01 08:00:00
0
0
0
JAVAをインストールする
から 1970-01-01 08:00:00
0
0
0
Javaをインストールできません
から 1970-01-01 08:00:00
0
0
0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート