【leetcode100-023】【链表】反转链表

【题干】

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。

【思路】

太经典了,感觉也没什么必要用文字来描述了,今天实在太累了,直接代码吧。

【题解】

cpp 复制代码
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        // 申请节点,pre和 cur,pre指向null
        ListNode* pre = nullptr;
        ListNode* cur = head;
        while (cur != nullptr) {
            // 记录当前节点的下一个节点
            ListNode* tmp = cur->next;
            cur->next = pre;
            // pre和cur节点都前进一位
            pre = cur;
            cur = tmp;
        }
        return pre;
    }
};
cpp 复制代码
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if (head == nullptr || head->next == nullptr) {
            return head;
        }
        // 这里的cur就是最后一个节点
        ListNode* cur = reverseList(head->next);
		// 这里请配合动画演示理解
		// 如果链表是 1->2->3->4->5,那么此时的cur就是5
		// 而head是4,head的下一个是5,下下一个是空
		// 所以head.next.next 就是5->4
        head->next->next = head;
        // 防止链表循环,需要将head.next设置为空
        head->next = nullptr;
        // 每层递归函数都返回cur,也就是最后一个节点
        return cur;
    }
};
相关推荐
音浪豆豆_Rachel5 分钟前
Flutter跨平台通信的实战演练:复杂数据结构与单元测试在鸿蒙生态中的完美实现
数据结构·flutter·单元测试·harmonyos
旺仔小拳头..5 分钟前
数据结构(二)线性表————栈与队列
数据结构
weixin79893765432...15 分钟前
js 数据结构
链表·数组·哈希表·堆|栈·树|图·队列|双端队列·js 数据结构
AI科技星43 分钟前
光速的几何本质与运动极限:基于张祥前统一场论对光子及有质量粒子运动的统一诠释
数据结构·人工智能·经验分享·算法·计算机视觉
谈笑也风生1 小时前
经典算法题型之复数乘法(一)
数据结构·算法
一分之二~1 小时前
回溯算法--全排列
c语言·数据结构·c++·算法·leetcode
ohnoooo91 小时前
251211算法 搜索
数据结构·算法
热爱专研AI的学妹1 小时前
Coze-AI 智能体平台:工作流如何成为智能体的 “自动化引擎”?解锁零代码落地新范式
运维·数据结构·人工智能·自动化
聆风吟º1 小时前
【数据结构手札】顺序表实战指南(三):扩容 | 尾插 | 尾删
数据结构·顺序表·扩容·尾插·尾删
IT方大同1 小时前
数组的初始化与使用
c语言·数据结构·算法