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

Leetcode Hot 100刷题记录 -Day18(反转链表)

反转链表:

问题描述:

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

 

示例 1:

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

eb37d2ba93694dd083cfbb6c593eb523.png

示例 2:

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

6d8b788232694359b5f065be64b3d1c5.png

示例 3:

输入:head = []
输出:[]
/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
class Solution {public ListNode reverseList(ListNode head) {//定义了一个指向 null 的节点 prev,用于存储反转后的链表的前一个节点。最开始的时候,反转链表的前驱节点为 null,因为反转后的第一个节点会成为尾节点,其 next 指针应该指向 nullListNode prev = null;//定义了一个指向当前节点的指针 curr,最初指向原链表的头节点 head。这是用于遍历链表的指针ListNode curr = head;while(curr!= null){// 临时保存当前节点的下一个节点 next,因为在反转链表的过程中,当前节点的 next 指针会被修改,先存储它以免丢失后续的链表结构ListNode next = curr.next;// 将当前节点的 next 指针指向 prev,这一步完成了链表节点的反转操作。curr.next = prev;// 移动 prev 指针,使它指向当前节点。这样在下一次迭代时,当前节点会成为下一次迭代中处理的节点的前一个节点。prev = curr;// 移动 curr 指针,使它指向下一个节点(即之前存储的 next),准备处理下一个节点curr = next;}return prev;}
}

 

 


http://www.mrgr.cn/news/31758.html

相关文章:

  • Grass脚本2倍速多账号
  • ubuntu20.04 colmap 安装2024.11最新
  • selenium 控制内嵌table滚动条的方法
  • MyBatis-Plus快速上手
  • 从零到一:利用 AI 开发 iOS App 《震感》的编程之旅
  • Spring框架之策略模式 (Strategy Pattern)
  • MongoDB在Linux系统中的安装与配置指南
  • 搜索引擎onesearch3实现解释和升级到Elasticsearch v8系列(一)-概述
  • sourceTree使用脚本一键push代码到gerrit
  • Python使用总结之FastAPI高级功能探索:数据库集成与依赖注入
  • Redis使用场景 | 建议收藏✨
  • BCT 预估block change tracking file的大小
  • 系统分析与设计
  • 【服务器第二期】mobaxterm软件下载及连接
  • C#中DataGridView 的 CellPainting 事件的e.Handled = true
  • C++速通LeetCode中等第16题-环形链表II(快慢指针)
  • Linux笔记---简单指令
  • 前端框架Vue、React、Angular、Svelte对比
  • 写作练习(一)
  • 2024年华为杯中国研究生数学建模竞赛F题(X射线脉冲星光子到达时间建模)思路
  • 为什么Redis这么快及可以实现的功能
  • 大厂校招:希音(Shein)校园招聘面试题及参考答案
  • JavaEE: 深入探索TCP网络编程的奇妙世界(二)
  • idea中.git文件夹存在但是没有git功能列表
  • 关于CONCAT(‘18‘,FLOOR(RAND()*X);
  • Spring Boot技术在高校心理辅导系统中的应用研究