206 反转链表

(写给未来遗忘的自己)

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; // 返回反转后的链表头节点
    }
};

注意:将当前头节点作为每一次反转后的头节点,下一个节点就当作探索的一个点,那么探索的这个点当为空的时候就是结束的时候,返回的就是每一次记忆的头节点。

第一次做的错误点:(循环结束的条件和返回的头节点是那个)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值