反转链表
方法一:迭代法
ListNode* reverseList(ListNode* head) {
ListNode* p = head,*nex,*prev=NULL;
if (head == NULL)
return NULL;
while (p->next)
{
nex = p->next;
p->next = prev;
prev = p;
p = nex;
}
p->next = prev;
return p;
}
方法二:递归法
class Solution {
public:
ListNode* reverseList(ListNode* head) {
if ((head == NULL)||(head->next == NULL))
return head;
ListNode* p = reverseList(head->next);
head->next->next = head;
head->next = NULL;
return p;
}
};