首頁 >Java >java教程 >Java程序從單鏈接列表中刪除所有節點

Java程序從單鏈接列表中刪除所有節點

Patricia Arquette
Patricia Arquette原創
2025-02-07 11:36:16742瀏覽

這個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. >
  4. 刪除前導evens:從列表的頭部迭代,一開始就刪除任何偶數的節點,直到遇到一個奇數節點為止。 >
      刪除內部evens:遍歷其餘列表。如果節點的
    • 節點具有均勻值,請通過將當前節點直接鏈接到偶數值節點後的節點來繞過它。
    • >輸出:在列表中打印剩餘的節點。 next
  5. > java代碼:
  6. 輸出:

這個改進的版本包括一個更簡潔的說明,更清晰的代碼註釋,並處理所有節點甚至所有節點的邊緣情況(導致空列表)。 在處理內部節點之前,添加檢查(

),如果所有領導節點均為
<code class="language-java">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();
    }
}</code>

以上是Java程序從單鏈接列表中刪除所有節點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn