翻转链表
1.迭代
if(!head)
return NULL;
struct ListNode *p = head, *newHead = head;
while(head->next){
p = head->next;
head->next = p->next;
p->next = newHead;
newHead = p;
}
return newHead;
2.递归
struct ListNode *pre=NULL;
struct ListNode* reverseList(struct ListNode* head) {
if(head)
{struct ListNode *next=head->next;
head->next=pre;
pre=head;
reverseList(next);
return(pre);
}
else
return NULL;
}