三指针反转链表
还可以使用栈来解此题
#include "../Utils/ListNode.h" using namespace std; class Solution { public: ListNode* reverseList(ListNode* head) { if (head == nullptr) return nullptr; ListNode *left = nullptr, *middle = head, *right = head->next; while (right != nullptr) { middle->next = left; left = middle; middle = right; right = right->next; } middle->next = left; return middle; } }; int main() { ListNode *head = new ListNode(0); ListNode *n1 = new ListNode(1); ListNode *n2 = new ListNode(2); ListNode *n3 = new ListNode(3); ListNode *n4 = new ListNode(4); // head->next = n1; // n1->next = n2; // n2->next = n3; // n3->next = n4; Solution s; s.reverseList(head); return 0; }