Para recorrer una lista enlazada en orden inverso, podemos usar Iterador descendente o Iterador de lista
1. Iterador descendente
Sintaxis:
LinkedList<String> linkedlist = new LinkedList<>(); Iterator<String> listIterator = linkedlist.descendingIterator();
Devoluciones: el iterador descendente devuelve el iterador que apunta al final de la lista enlazada.
2. Iterador de lista
Sintaxis:
LinkedList<String> linkedlist = new LinkedList<>(); ListIterator<String> listIerator = linkedlist.listIterator(linkedlist.size());
Parámetro: el tamaño de la lista enlazada, esto hará que el iterador apunte al final de la lista enlazada.
Ejemplo 1: uso del iterador descendente
Java
// Java program to Iterate a LinkedList in Reverse Order // using descending Iterator import java.util.Iterator; import java.util.LinkedList; public class GFG { public static void main(String[] args) { LinkedList<String> linkedList = new LinkedList<>(); // adding elements to linked list linkedList.add("Geeks"); linkedList.add("For"); linkedList.add("Geek"); linkedList.add("2020"); linkedList.add("2021"); // getting an iterator which points at the // end of the linkedlist Iterator<String> iterator = linkedList.descendingIterator(); // traversing the linkedlist // hasNext() will tell if previous element is // available or not // next() with descending iterator will return the // previous element // and after getting the previous element // is moves the cursor to next previous element. while (iterator.hasNext()) { System.out.println(iterator.next()); } } }
Producción
2021 2020 Geek For Geeks
Ejemplo 2: uso del iterador de lista
Java
// Java program to Iterate a LinkedList in Reverse Order // using List Iterator import java.util.LinkedList; import java.util.ListIterator; public class GFG { public static void main(String[] args) { LinkedList<String> linkedList = new LinkedList<>(); // adding elements of to the linkedlist linkedList.add("Geeks"); linkedList.add("For"); linkedList.add("Geek"); linkedList.add("2020"); linkedList.add("2021"); // getting an iterator that points at the end of the // linkedlist ListIterator<String> listIterator = linkedList.listIterator(linkedList.size()); // Traversing the linked list // hasPrevious() function to check if previous // element is present or not previous() function to // get the previous element and after getting // previous elements it move the cursor to the next // previous element while (listIterator.hasPrevious()) { System.out.println(listIterator.previous()); } } }
Producción
2021 2020 Geek For Geeks