For traversing a linked list in reverse order we can use Descending Iterator or List Iterator
1. Descending Iterator
Syntax:
LinkedList<String> linkedlist = new LinkedList<>(); Iterator<String> listIterator = linkedlist.descendingIterator();
Returns: Descending Iterator returns the Iterator that points to the end of the linked list.
2. List Iterator
Syntax:
LinkedList<String> linkedlist = new LinkedList<>(); ListIterator<String> listIerator = linkedlist.listIterator(linkedlist.size());
Parameter: the size of the linked list, this will make the iterator point at the end of the linked list.
Example 1: Using descending Iterator
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());
}
}
} |
Output
2021 2020 Geek For Geeks
Example 2: Using List Iterator
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());
}
}
} |
Output
2021 2020 Geek For Geeks