反转链表,基础的链表操作
迭代:
ListNode* reverseList(ListNode* head) {
if(head == NULL) return NULL;
ListNode *top = head;
while(top->next != NULL)
{
ListNode *temp = top->next;
top->next = temp->next;
temp->next = head;
head = temp;
}
return head;
}
递归:
ListNode* reverseList(ListNode* head) {
if(head == NULL) return NULL;
return getAns(head,head);
}
ListNode* getAns(ListNode* head,ListNode* top)
{
if(top->next == NULL) return head;
ListNode* temp = top->next;
top->next = temp->next;
temp->next = head;
return getAns(temp,top);
}