Linked List Reverse Print

This code is in C; the only major difference between it and C++ are in the way
that structs are declared; in C++, "node* next" is sufficient. It would, of
course, be possible to replace the printf with cout if so desired.

This solution uses recursion to reverse the linked list by, in effect, placing
every element on the list on the call stack. Since the first element put on a
stack
is the last one removed, by putting the list on the stack in order, we can
remove the elements in exactly the reverse order.

Other solutions that do not use recursion would need to explicitly handle the
stack, perhaps by constructing a linked list in reverse order.