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

leetcode-206-翻转链表

  • 对于链表来说,->next就是代表图上的那个箭头,指向后,就相当于已经建立完链接,就可以改变只想节点的指针的位置了

  • 每一个指针,则是代表一个圈

一 解题

方法一:迭代


假设链表为 1→2→3→∅1 \rightarrow 2 \rightarrow 3 \rightarrow \varnothing1→2→3→∅,我们想要把它改成 ∅←1←2←3\varnothing \leftarrow 1 \leftarrow 2 \leftarrow 3∅←1←2←3。

在遍历链表时,将当前节点的 next\textit{next}next 指针改为指向前一个节点。由于节点没有引用其前一个节点,因此必须事先存储其前一个节点。在更改引用之前,还需要存储后一个节点。最后返回新的头引用。

class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        ListNode* prev = nullptr;
        ListNode* curr = head;
        while (curr) {
//如果要改变链接指向,则需要暂存现在的指向
            ListNode* next = curr->next;
//断开链接,并重新链接
            curr->next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
};

方法二 递归

cla

http://www.kler.cn/a/234523.html

相关文章:

  • C++开发基础之使用librabbitmq库实现RabbitMQ消息队列通信
  • 万字长文解读深度学习——卷积神经网络CNN
  • 爬虫如何解决短效代理被封的问题?
  • linux,自定义Yum仓库、网络Yum仓库、DNS服务基础
  • ManiSkill学习笔记
  • 工位管理优化:Spring Boot企业级系统
  • 【Jenkins】Jenkins关闭Jenkins关闭、重启
  • LeetCode---383周赛
  • 学了很多知识,没多久就忘光了,怎么办?
  • 力扣刷题之旅:进阶篇(六)—— 图论与最短路径问题
  • 网络的基本概念和socket编程
  • java 类加载过程
  • Vulnhub靶机:hacksudo-search
  • Java实现数据可视化的智慧河南大屏 JAVA+Vue+SpringBoot+MySQL
  • 踩坑实录(Second Day)
  • 789. 数的范围(二分模板)
  • ShardingSphere实现openGauss分布式架构
  • 夜天之书 #95 GreptimeDB 社群观察报告
  • 零代码3D可视化快速开发平台
  • 【射影几何15】python双曲几何工具geometry_tools
  • 【Opencv学习】04-图像加法
  • QGIS编译(跨平台编译)之四十九:cairo编译(Windows、Linux、MacOS环境下编译)
  • 基于springboot会员制医疗预约服务管理信息系统源码和论文
  • vue3学习——router-view 过渡动画
  • visual studio code could not establish connection to *: XHR failed
  • GreenSock Animation Platform(GSAP)动画库插件介绍