You can use LinkedList.descendingIterator()
(which is there since Java 1.6)
here's the javadoc
Returns an iterator over the elements in this deque in reverse sequential order. The elements will be returned in order from last (tail) to first (head).
Usage
LinkedList<Integer> ll = new LinkedList<Integer>();
ll.add(1);
ll.add(2);
ll.add(3);
System.out.println("Normal traversal");
for(Iterator<Integer> i = ll.iterator(); i.hasNext();) {
System.out.println(i.next());
}
System.out.println("Reverse");
for(Iterator<Integer> i = ll.descendingIterator(); i.hasNext();) {
System.out.println(i.next());
}
There is one more way of doing this using LinkedList.listIterator(index)
method too
ListIterator<Integer> i = ll.listIterator(ll.size()); //creates a ListIterator with starting index as the size of LinkedList, to point to the last element
while(i.hasPrevious()) {
System.out.println(i.previous());
}