Rumah >Java >javaTutorial >Program Java untuk memadam semua nod dari senarai yang berkaitan

Program Java untuk memadam semua nod dari senarai yang berkaitan

Patricia Arquette
Patricia Arquetteasal
2025-02-07 11:36:16714semak imbas

Program Java ini dengan cekap menghilangkan semua nod bernilai walaupun dari senarai yang berkaitan. Mari kita memperbaiki penjelasan dan persembahan untuk kejelasan.

Artikel ini menunjukkan cara menghapuskan semua nod yang bernombor dari senarai yang berkaitan dengan Jawa. Kami akan meliputi membuat senarai, menambah nod, memadam nod bernilai walaupun, dan memaparkan senarai akhir.

Senarai yang dikaitkan secara tunggal adalah struktur data linear di mana setiap nod menunjuk ke nod seterusnya dalam urutan. Setiap nod mengandungi data (dalam kes ini, integer) dan penunjuk ke nod seterusnya.

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

Masalah: Padam semua nod yang bernilai walaupun dari senarai yang berkaitan dengan tunggal.

Contoh input:

<code>Original List: 1 2 3 4 5 6</code>

Output Contoh:

<code>Original List: 1 2 3 4 5 6
List after deleting even nodes: 1 3 5</code>

Algoritma:

  1. Inisialisasi: Buat senarai yang dikaitkan secara kosong.
  2. Penyisipan nod: Tambah nod dengan nilai integer (mis., 1, 2, 3, 4, 5, 6) ke senarai.
  3. walaupun penyingkiran nod:
    • Keluarkan evens terkemuka: meleleh dari kepala senarai, mengeluarkan sebarang nod yang bernilai pada mulanya sehingga nod bernilai ganjil ditemui.
    • Keluarkan evens dalaman: melintasi senarai yang tinggal. Jika nod nod mempunyai nilai yang lebih baik, memintasnya dengan menghubungkan nod semasa terus ke nod selepas nod yang bernilai. next
  4. output: Cetak nod yang tinggal dalam senarai.

Java Code:

<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>

output:

<code>Original List:
1 2 3 4 5 6 
List after deleting even nodes:
1 3 5 </code>
versi yang lebih baik ini termasuk penjelasan yang lebih ringkas, komen kod yang lebih jelas, dan mengendalikan kes kelebihan di mana semua nod bahkan (menghasilkan senarai kosong). Penambahan cek (

) sebelum memproses nod dalaman menghalang if (head != null) jika semua nod utama adalah. NullPointerException

Atas ialah kandungan terperinci Program Java untuk memadam semua nod dari senarai yang berkaitan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn