反转链表——一图胜千言

反转链表——一图胜千言

剑指 Offer 24. 反转链表

上次面试没做出来这题,尬住了

        1 -> 2 -> 3 -> 4 -> 5 ->NULL
NULL <- 1 <- 2 <- 3 <- 4 <- 5

对1来说,从NULL -> 1变成1 -> NULL
对2来说……

因此,我们需要用pre变量存储原链表的上一个节点,也就是新链表的下一个节点

思路明确后,剩下的过程就很简单啦。

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* pre = nullptr;
        while (head != nullptr) {
            ListNode *nxt = head->next;
            head->next = pre;
            pre = head;
            head = nxt;
        }
        return pre;
    }
};