翻转单链表是面试中经常出现的现场编程题,但是要用简洁的代码实现也不是那么简单。下面是一个优雅的实现:
struct node* reverse(struct node *head){
struct node *p, *q, *r;
p = NULL;
q = head;
while(q){
r = q->next;
q->next = p;
p = q;
q = r;
}
return p;
}