Maison > Java > javaDidacticiel > Programme Java pour supprimer tous les nœuds même d'une liste liée individuellement

Programme Java pour supprimer tous les nœuds même d'une liste liée individuellement

Patricia Arquette
Libérer: 2025-02-07 11:36:16
original
779 Les gens l'ont consulté

Ce programme Java supprime efficacement tous les nœuds à valeur uniforme d'une liste liée individuellement. Affinons l'explication et la présentation de la clarté.

Cet article montre comment supprimer tous les nœuds uniformes d'une liste liée individuellement en Java. Nous couvrirons la création de la liste, l'ajout de nœuds, la suppression des nœuds à valeur pair et l'affichage de la liste finale.

Une liste liée individuellement est une structure de données linéaire où chaque nœud pointe vers le nœud suivant dans la séquence. Chaque nœud contient des données (dans ce cas, un entier) et un pointeur vers le nœud suivant.

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

Problème: Supprimer tous les nœuds de valeur uniforme d'une liste liée individuellement.

Exemple d'entrée:

<code>Original List: 1 2 3 4 5 6</code>
Copier après la connexion

Exemple de sortie:

<code>Original List: 1 2 3 4 5 6
List after deleting even nodes: 1 3 5</code>
Copier après la connexion

Algorithme:

  1. Initialisation: Créez une liste vide liée individuellement.
  2. Insertion du nœud: Ajouter des nœuds avec des valeurs entières (par exemple, 1, 2, 3, 4, 5, 6) à la liste.
  3. Même suppression du nœud:
    • Supprimer les Evens de leaders: itérer de la tête de la liste, en supprimant les nœuds à valeur pair au début jusqu'à ce qu'un nœud à valeur impair soit rencontré.
    • Supprimez les Evens internes: Traversez la liste restante. Si le nœud next d'un nœud a une valeur uniforme, contournez-le en reliant le nœud actuel directement au nœud après le nœud à valeur pair.
  4. Sortie: Imprimez les nœuds restants dans la liste.

Code 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();
    }
}
Copier après la connexion

Sortie:

<code>Original List:
1 2 3 4 5 6 
List after deleting even nodes:
1 3 5 </code>
Copier après la connexion

Cette version améliorée comprend une explication plus concise, des commentaires de code plus clairs et gère le cas de bord où se trouvent tous les nœuds (résultant en une liste vide). L'ajout d'un chèque (if (head != null)) avant de traiter les nœuds internes empêche un NullPointerException si tous les nœuds principaux étaient uniformes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Derniers numéros
Impossible d'installer Java
Depuis 1970-01-01 08:00:00
0
0
0
Installer JAVA
Depuis 1970-01-01 08:00:00
0
0
0
Java peut-il être utilisé comme backend du Web ?
Depuis 1970-01-01 08:00:00
0
0
0
Aide : Données chiffrées JAVA Décryptage PHP
Depuis 1970-01-01 08:00:00
0
0
0
Est-ce en langage Java ?
Depuis 1970-01-01 08:00:00
0
0
0
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal