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

力扣hot100--反转链表

在这里插入图片描述

思路1 迭代法

核心思路

  1. 双指针协作:
    pre 指向当前节点的前一个节点(初始为 null)。
    cur 指向当前处理的节点(初始为头节点 head)。
  2. 迭代过程: 保存当前节点的下一个节点 temp。
    将当前节点的 next 指针指向前一个节点 pre(反转方向)。 移动 pre 和 cur指针,继续处理下一个节点。
  3. 终止条件: 当 cur 遍历到链表末尾(null)时,pre 即为新的头节点。
    在这里插入图片描述
ListNode pre = null;// 前一个节点,初始为nullListNode cur = head; // 当前节点,初始为头节点while (cur != null) {// 1. 保存当前节点的下一个节点ListNode temp = cur.next;// 2. 将当前节点的next指向前一个节点(反转方向)cur.next = pre;// 3. 移动pre和cur指针// pre 移动到当前节点pre = cur;// cur 移动到之前保存的下一个节点cur = temp;}// 4. 返回新的头节点(即原链表的尾节点)return pre;

2.递归法

在这里插入图片描述
在这里插入图片描述

 // 1. 递归终止:空链表或单节点链表while (head == null || head.next == null) {return head;}// 2. 递归反转后续节点,获取新头节点ListNode result = reverseList(head.next);// 3. 修改指针方向(核心操作)// 让后续节点指向当前节点head.next.next = head;// 切断当前节点的原next指向head.next = null;// 4. 返回新头节点return result;
http://www.xdnf.cn/news/13489.html

相关文章:

  • 美食推荐系统微信小程序
  • Kotlin基础语法五
  • PHP语法基础篇:变量与数据类型
  • 增强现实—Flame: Learning to navigate with multimodal llm in urban environments
  • Flask应用中处理异步事件(后台线程+事件循环)的方法
  • Python的LibreOffice命令行详解:自动化文档处理的终极指南
  • pointer-events属性对G6节点拖拽及滑动的影响
  • python打卡day51
  • Android WebView 深色模式适配方案总结
  • ADB(Android Debug Bridge)Android官方调试工具及常用命令
  • 每天五分钟深度学习PyTorch:卷积和池化后图片会有什么变化?
  • python使用正则表达式判断字符串中“.“后面不是数字的情况
  • 初学者运行Pycharm程序可能会出现的问题,及解决办法
  • CMO增加人工智能投资:数据表明了什么
  • 软件架构期末复习
  • 7.路由汇聚及更新
  • Docker安装mysql数据库后显示时间问题
  • 3 mnist gan小试牛刀
  • 有多少小于当前数字的数字
  • 巨好用的提示词优化工具 Prompt IDE
  • React删除评论逻辑:1、客户端立即更新UI(乐观更新)2、后台调用删除评论API
  • 【测试专栏】自动化测试——云存储项目
  • 【源码】研学报名小程序开发功能分析案例
  • 网络安全之框架安全漏洞分析
  • 【网页端数字人开发】基于babylonjs+mediapipe实现视频驱动数字人姿态生成
  • .NET 的IOC框架Unity代码示例
  • LangGraph基础知识(MemorySaver/SqliteSaver )(三)
  • Qt::QueuedConnection详解
  • 告别 NullPointerException!深入探索 Java Optional 的最佳实践
  • P1216 [IOI 1994] 数字三角形 Number Triangles