You could have a stack of type list<T>::iterator, then iterate the list and push them onto stack. Something like this (not tried)
Code:
list<LT> mylist;
stack<list<LT>::iterator> mystack;

   for (list<LT>::iterator li = mylist.begin(); li != mylist.end(); ++li)
       mystack.push(li);
Note that if you perform further operations on the list you need to be careful not to invalidate any of the iterators stored in the stack.