public:
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* curr = head;
ListNode* next = nullptr;
while(curr) {
next = curr->next;
curr->next = prev;
prev = curr;
curr = next;
}
return prev;
}
};
主要通过迭代实现,思路为每个节点的next全部改为前面的节点,链表也就自然反转了。 思路如下,初始化前指针、当前指针、后指针 while循环内部,将curr的next保存下来(后续需要修改curr的next,造成丢失),将curr->next修改。将prev、next同时向后移动。