206. 反转链表
- 递归法
ListNode* reverse(ListNode *pre,ListNode *cur){
if(cur == NULL) return pre;
ListNode *next = cur->next;
cur->next = pre;
return reverse(cur,next);
}
ListNode* reverseList(ListNode* head) {
return reverse(NULL,head);
}
- 迭代法
ListNode* reverseList(ListNode* head) {
ListNode *pre = NULL;
ListNode *cur = head;
while(cur != NULL){
ListNode *next = cur->next;
cur->next = pre;
pre = cur;
cur = next;
}
return pre;
}