> Interchange the head and the tail?
That still leaves the middle section in the original order.
The only way I can think of to do it is if you have a direction member variable that's used to determine the orientation of head, tail, next() and prev().
Or wrap it in a decorator that delgates head() to tail(), next() to prev(), etc.