反转链表——一图胜千言
反转链表——一图胜千言
上次面试没做出来这题,尬住了
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;
}
};