利用头插法逆置链表
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
struct ListNode* reverseList(struct ListNode* head) {
if(!head)
return NULL;
struct ListNode *p,*q,*t;
p=head;
q=p->next;
p->next=NULL; //将头节点从链表中断开
while(q)
{
t=q;
q=q->next;
t->next=p;
p=t;
}
return p;
}