Tweaked the algorithm.  Had a bug in the linked list pointers. It will not go backwards (rewind) and not infinitely loop like a proper doubly linked list.