1、迭代法的一种写法
ListNode* reverse_linkList(ListNode* head){if(head == nullptr || head->next == nullptr) return head;ListNode* begin = nullptr;ListNode* mid = head;ListNode* end = head->next;while(true){mid->next = begin;if(end == nullptr){break;}begin = mid;mid = end;end = end->next;}head = mid;return head;}
2、 迭代法的另一种写法
ListNode* reverse_linkList(ListNode* head) {ListNode* prev = nullptr; ListNode* current = head; while (current != nullptr) {ListNode* nextNode = current->next; current->next = prev; prev = current; current = nextNode; }return prev;
}
3、 递归法实现
ListNode* reverse_linkList(ListNode* head) {if (head == nullptr || head->next == nullptr) {return head; }ListNode* newHead = reverse_linkList(head->next); head->next->next = head; head->next = nullptr; return newHead;
}