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

LCR 024. 反转链表 最细图片逐行解析过程

LCR 024. 反转链表

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

进阶:链表可以选用迭代或递归方式完成反转。你能否用两种方法解决这道题?

注意:本题与主站 206 题相同: . - 力扣(LeetCode)

头插法

30min

首先我们需要定义一根头指针和一根当前指针

当前指针为空的时候证明已经成功反转

首先我们要明白一个东西 可达性:GC会回收那些没有变量引用的元素,即使他们内部连接上的。

所以当我们断掉指针之前一定要保存后面的节点。

详细流程+注释。

public ListNode reverseList(ListNode head) {//定义前一个指针ListNode pre = null;//定义头节点的指针ListNode cur = head;while(cur != null){//定义一个锁 抓住当前节点后面无引用的节点 避免被GC回收了 (可达性)ListNode next = cur.next;//把当前节点的引用指向前一个节点(开始为null)cur.next = pre;//移动指针把前一个节点 移动到当前节点pre = cur;//把当前节点移动到下一个节点进行遍历操作指针更新cur = next;}return pre;}


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

相关文章:

  • Web开发(一)HTML5
  • 小结:路由器和交换机的指令对比
  • Vue创建登录页面
  • 【Linux系列】`find / -name cacert.pem` 文件搜索
  • 二级缓存(缓存到Redis)
  • 【k8s】用户和服务账户联系(user、serviceaccount、sa)
  • VSCode 设置环境变量(WSL 2)
  • df -h 和df -i 的区别
  • AcWing 1451:单链表快速排序
  • crash工具使用
  • GPT避坑指南:如何辨别逆向、AZ、OpenAI官转
  • linux网络编程7——协程设计原理与汇编实现
  • 【网络】传输层协议TCP
  • Training language models to follow instructions with human feedback解读
  • 国密和国际密
  • 拥塞控制与TCP子问题(粘包问题,异常情况等)
  • 2024/10/29 英语每日一段
  • PyMol3.0 Educational Version激活教程(激活一次可用半年)
  • LCR 027. 回文链表 不利用额外空间实现快慢指针
  • OSError: no library called “cairo-2“ was found no library called “cairo“ was
  • 84674
  • msvcr100.dll丢失怎样修复,介绍6个简单靠谱的方法
  • 基于SSM+微信小程序的汽车维修管理系统(汽车5)
  • Qt编程技巧小知识点(6)根据 *IDN? 对程控仪器连接状态进行确认
  • leetcode hot100【LeetCode 543. 二叉树的直径】java实现
  • 离散数学实验五c语言(并查集处理,Kruskal算法求最小生成树)