There are two main suggestions I would recommend:
Use separate methods to reuse code when able to.
Take advantage of the tools already in the Java library.
LinkedList already has a method built in to return a descendingIterator() which can be used to handle the backwards read. You can also take advantage of various capabilities in the String and Integer ...