
class ListBackwardIterator {

  List _list;
  ListNode _previous;

  ListBackwardIterator( List list ) {
    _list = list;
    _previous = _list.head().getPrevious();
  }

  boolean hasMoreNodes() {
    return _previous != _list.head(); 
  }

  ListNode nextNode() {
    if ( !hasMoreNodes() ) {
      return null;
    }

    ListNode node = _previous;
    _previous = _previous.getPrevious();

    return node;
  }

}


