链表结构体:
typedef struct node {
int data;
struct node* next;
} node;
递归实现逆置:
node* reverse(node* r, node* s) {
if (s == null) return r;
node* p, q;
p = s->next;
q = p->next;
p->next = r;
return reverse(p, q);
}