I might be missing something, but I think the trivial reversal algorithm actually takes O(n) time: while the input deque is non-empty, remove an element from its front and add that element to the front of a new output deque. There are n elements so this takes O(n) time. Are you thinking of something different?