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

【力扣206】反转链表

【力扣206】反转链表

一.题目描述

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

示例 1 :

image-20231203225533071

输入:head = [1,2,3,4,5]
输出:[5,4,3,2,1]

示例 2 :

image-20231203225555271

输入:head = [1,2]
输出:[2,1]

示例 3:

输入:head = []
输出:[]

提示:

  • 链表中节点的数目范围是 [0, 5000]
  • -5000 <= Node.val <= 5000

二.题目分析

假设链表为 1→2→3→∅,我们想要把它改成 ∅←1←2←3

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

Java代码

class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev = null;
        ListNode curr = head;
        while (curr != null) {
            ListNode next = curr.next;
            curr.next = prev;
            prev = curr;
            curr = next;
        }
        return prev;
    }
}


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

相关文章:

  • Wireshark
  • Toeplitz矩阵循环矩阵
  • PostgreSQL中的COPY命令:高效数据导入与导出
  • 推荐一个超漂亮ui的网页应用设计
  • 什么是两化融合
  • 苍穹外卖 数据可视化
  • Filebeat使用指南
  • RPA机器人如何确保敏感数据的安全性
  • 使用 OpenCV 识别和裁剪黑白图像上的白色矩形--含源码
  • 策略设计模式
  • Spring Boot 3.2 新特性之 RestClient
  • 【C语言】【数据结构】【手搓二叉树】用数组实现一个二叉树
  • Android 第三十九章 RatingBar
  • SpringMVC常用注解和用法总结
  • leetcode:468. 验证IP地址
  • viple模拟器使用(四):unity模拟器中实现两距离局部最优迷宫算法
  • javaee实验:文件上传及截器的使用
  • 迭代器模式-C++实现
  • Hive 安装部署
  • (11_29)畅捷通的 Serverless 探索实践之路
  • [Java]轻松掌握JDK和CGlib代理的使用技巧,让你的Java程序性能更卓越!
  • C语言实战演练之贪吃蛇游戏
  • 【springboot】启动失败 Failed to start bean ‘webServerStartStop‘
  • Unity安装
  • Python生产者消费者模型
  • Zabbix 6.0 详细基础介绍