当前位置: 首页 > 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;
    }
};

总结

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

http://www.dtcms.com/a/20367.html

相关文章:

  • 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:从浏览器到显卡的旅程
  • 视频编码标准(H.264/AVC、H.265/HEVC、AV1、MPEG-2 和 MPEG-4 Part 2)
  • Python常见面试题的详解6
  • vscode/cursor 写注释时候出现框框解决办法
  • 【UE】快速的搓一个基于贴图的假渲染
  • 【Linux】Ext2文件系统、软硬链接
  • Linux: 调整套接字缓冲区大小相关内核参数
  • verilog程序设计及SystemVerilog验证
  • CondaValueError: Malformed version string ‘~‘: invalid character(s)
  • DeepSeek正重构具身大模型和人形机器人赛道!
  • 使用 Express 写接口