Singly-Linked List In-Place Reversal
My primary concern with this implementation is the fact that it is recursive and thus the amount of stack that you are consuming is directly proportional to the length of the linked list.  If the linked list is something like 10 nodes long, you are likely going to be fine.  However, if it is 1,000,000 nodes long then that is something that you can expect to blow the stack.

I would recommend rewriting the algorithm to not use recursion.  This can be done in the following manner.

node = list-&gt;head;
if (node is NULL) then there is nothing to do

for (next = node-&gt;next; next != NULL; next = node-&gt;next) {
    remove 'next' from the list

    /*
     * the act of removing 'next' from the list will automatically
     * update node-&gt;next.  Note that 'node' never changes.
     */

    add 'next' to the head of the list
}


Hope this helps.