当前位置: 首页 > news >正文

算法-链表篇03-反转链表

反转链表

力扣题目链接

题目描述

给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。
在这里插入图片描述

解题思路

首先定义链表节点指针pre和cur分别代表反转的前一个节点和当前反转节点,但是节点反转后,后一个节点会出现没有指向的情况,无法访问到,也就是发生了内存泄漏。所以,我们还需要一个next指针保存一下下一个节点的地址。然后循环遍历对整个链表进行反转操作。

题解

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        if(head == nullptr || head->next == nullptr){
            return head;
        }
        ListNode* pre = nullptr;
        ListNode* cur = head;
        ListNode* next;
        while(cur != nullptr){
            next = cur->next;
            cur->next = pre;
            pre = cur;
            cur = next;
        }

        return pre;
    }
};

总结

反转链表虽然原理上很简单,但是实际操作中很容易被各个节点给绕进去,所以需要严谨定义每个指针。在进行反转操作时也要防止每一步的顺序错误,这可能会导致意想不到的错误。

相关文章:

  • EasyX学习笔记1:线条
  • C# struct, class的区别
  • 算法与数据结构(除自身以外数组的乘积)
  • 第2章:进阶格式与结构化元素
  • 如何利用PLM软件有效地推进制造企业标准化工作?
  • 1.综述 Google 的软件工程读书笔记
  • Golang Model 字段自动化校验设计
  • WEB安全--SQL注入--常见的注入手段
  • cv2.Sobel
  • 构建现代微服务安全体系:Spring Security、JWT 与 Spring Cloud Gateway 实践
  • 如何在 IntelliJ IDEA 中使用 Bito AI 插件
  • C++编程,#include <iostream>详解,以及using namespace std;作用
  • Android的Activity生命周期知识点总结,详情
  • ML.Net二元分类
  • spring boot 对接aws 的S3 服务,实现上传和查询
  • vue3.x 自定义hook函数详细解读
  • CAS单点登录(第7版)18.日志和审计
  • Java:单例模式(Singleton Pattern)及实现方式
  • sql sqlserver的特殊函数COALESCE和PIVOT的用法分析
  • 理解 WebGPU 中的 navigator.gpu 和 adapter:从浏览器到显卡的旅程
  • 新时代,新方志:2025上海地方志论坛暨理论研讨会举办
  • 光明日报社副总编辑薄洁萍调任求是杂志社副总编辑
  • 国家统计局公布2024年城镇单位就业人员年平均工资情况
  • 我国城市规划“全面体检”套餐出台,城市体检将逐步与供地计划等挂钩
  • 湖北宜化拟斥资超32亿加价回购“弃子”,布局上游煤炭业务
  • 钕铁硼永磁材料龙头瞄准人形机器人,正海磁材:已向下游客户完成小批量供货