When you ask someone to reverse a linked list, do you mean 'in place'?
My first thought was to build it up again from new conses, as you would in lisp. But then spotted a neat in-place way to do it too.
Found I absolutely had to draw a few scribbly diagrams first though.
So in C, always in place unless explicitly specified otherwise.
Thanks
1. copy head of list consed with nil
2. copy next item consed with previous
3. goto 2 while next item is not nil
That's N*(cost of a copy and a cons). Granted, it's not as fast in absolute terms, but the slowdown is a constant factor. You're certainly not doing N operations on each item.