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