Programa Java para eliminar un Node desde el principio de la lista enlazada circular

En este artículo, aprenderemos a eliminar un Node desde el principio de una lista enlazada circular . Considere la lista enlazada como se muestra a continuación.

Circular LinkedList

Ejemplo:

Input : 5->3->4->(head node)
Output: 3->4->(head node)

Llegan dos casos mientras se resuelve el problema,

Caso 1: la lista está vacía

  • Si la lista está vacía simplemente regresaremos.

Caso 2: la lista no está vacía  

  • Defina una clase de Node que represente el Node.
  • Eliminar():
    • retorno de la función si no hay ningún Node presente
    • establece la cabeza y la cola en nulo si solo hay un Node
    • si tiene más de un Node, elimina el Node principal anterior, la cabeza apuntará al siguiente Node en la lista y la cola apuntará al nuevo encabezado.
  • printNode() imprimirá todos los Nodes presentes en la lista como:
    • Se define la corriente del Node que apuntará a la cabeza
    • Imprima current.val hasta que comience a apuntar a la cabeza nuevamente
    • En cada iteración, apuntará al siguiente Node.

Código:

Java

// Java Program to Delete a Node From the Beginning of the
// Circular Linked List
  
public class Main {
  
    // Represents the node of list.
    public class Node {
        int val;
        Node next;
        public Node(int val) { this.val = val; }
    }
  
    // Initialising head and tail pointers
    public Node head = null;
    public Node tail = null;
  
    // add new node to the end
    public void addNode(int val)
    {
        // Creating new node
        Node node = new Node(val);
  
        // head and tail will point to new node
        // if list is empty
        if (head == null) {
            head = node;
            tail = node;
            node.next = head;
        }
  
        // otherwise tail point to new node and
        else {
            tail.next = node;
            tail = node;
            tail.next = head;
        }
    }
  
    // Deletes node from the beginning of the list
    public void delete()
    {
        // returns if list is empty
        if (head == null) {
            return;
        }
  
        // otherwise head will point to next element in the
        // list and tail will point to new head
        else {
            if (head != tail) {
                head = head.next;
                tail.next = head;
            }
  
            // if the list contains only one element
            // then both head and tail will point to null
            else {
                head = tail = null;
            }
        }
    }
  
    // displaying the nodes
    public void display()
    {
        Node current = head;
        if (head == null) {
            System.out.println("List is empty");
        }
        else {
            do {
                System.out.print(" " + current.val);
                current = current.next;
            } while (current != head);
            System.out.println();
        }
    }
  
    public static void main(String[] args)
    {
        Main list = new Main();
  
        // Adds data to the list
        list.addNode(5);
        list.addNode(3);
        list.addNode(4);
  
        // Printing original list
        System.out.println("Original List: ");
        list.display();
  
        // deleting node from beginning and
        // displaying the Updated list
        list.delete();
        System.out.println("Updated List: ");
        list.display();
    }
}
Producción

Original List: 
 5 3 4
Updated List: 
 3 4

Publicación traducida automáticamente

Artículo escrito por rbbansal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *