【LeetCode75】第三十一题 反转链表

目录

题目:

示例:

分析:

代码:


题目:

示例:

分析:

最经典的链表题,没有之一!!!

强烈建议直接把模板记住!!!

我们需要三个额外遍历来完成反转字符串的操作。

一个是pre用于记录当前节点的前一个节点,需要初始化为空指针。

一个是cur用于记录当前节点。

一个是next用于记录当前节点的下一个节点,为了让节点能够顺利遍历链表,因此要提前存起来。

那么我们使用cur开始遍历链表,只要cur不为空指针,我们就一直遍历。

然后先用next把cur的下一个节点缓存住。

然后让cur指向pre,再让pre变成cur,然后cur变成next,一直循环,直到cur变成空指针,把pre返回出去即可。

这些操作就是把每个节点的指向从指向下一个节点转变为指向上一个节点,最终返回反转前链表的最后一个节点。

代码:

cpp 复制代码
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* pre=nullptr;  //前驱节点
        ListNode* cur=head;     //当前节点
        ListNode* next=nullptr; //后驱节点
        while(cur!=nullptr){
            next=cur->next;
            cur->next=pre;
            pre=cur;
            cur=next;
        }
        return pre;
    }
};
相关推荐
CoderCodingNo16 分钟前
【信奥业余科普】C++ 的奇妙之旅 | 12:程序的交互与加工——数据的输入与算术运算
开发语言·c++
yx868xy22 分钟前
Cuda加速直线拟合
c++·cuda
Robot_Nav24 分钟前
Shape-Aware MPPI(SA MPPI)算法:基于RC-ESDF的任意形状机器人实时轨迹优化
算法·机器人·sa-mppi
蜗牛在听雨1 小时前
基于 C++ 的 UG/NX 二次开发环境配置
c++·二次开发·ug
gumichef1 小时前
算法的时间复杂度和空间复杂度
数据结构
SimpleLearingAI1 小时前
C++虚函数详解
开发语言·c++
踩坑记录1 小时前
leetcode hot100 118. 杨辉三角 easy 动态规划
leetcode·动态规划
小O的算法实验室1 小时前
2026年ESWA,自适应基于排序的协同进化学习粒子群算法+边缘计算服务器部署,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进
小柯博客1 小时前
STM32MP2安全启动技术深度解析
c语言·c++·stm32·嵌入式硬件·安全·开源·github
cpp_25012 小时前
P1832 A+B Problem(再升级)
数据结构·c++·算法·动态规划·题解·洛谷·背包dp