(写给未来遗忘的自己)
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* move_first = head; // 当前节点
ListNode* move_last = nullptr; // 反转后链表的头节点
ListNode* move_mind; // 临时变量用于存储下一个节点
while (move_first != nullptr) { // 这里应检查当前节点是否为null
move_mind = move_first->next; // 存储下一个节点
move_first->next = move_last; // 反转当前节点的指针
move_last = move_first; // 更新反转后的链表头节点
move_first = move_mind; // 移动到下一个节点
}
return move_last; // 返回反转后的链表头节点
}
};
注意:将当前头节点作为每一次反转后的头节点,下一个节点就当作探索的一个点,那么探索的这个点当为空的时候就是结束的时候,返回的就是每一次记忆的头节点。
第一次做的错误点:(循环结束的条件和返回的头节点是那个)