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

力扣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;

相关文章:

  • 多线程应用
  • 详细解释aruco::markdetection _detectInitialCandidates函数
  • Java八股文——Spring「MyBatis篇」
  • Linux开发工具之VsCode(Filezila、MobaXterm、Vim三合一)
  • git的常用方法
  • 【Unity优化】提高热更新和打包速度
  • 架空线路智能监控系统的应用与优势剖析
  • Android Studio 无法安装HAXM,点击之后无反应
  • Vue-Typed-JS打字动画效果
  • C#.Net 使用NPOI库导出Excel(含列宽度自适应) 及 根据Excel文件生成DataTable
  • c#实现绝对路径和相对路径的转换
  • 【网络】每天掌握一个Linux命令 - netperf
  • 【题解-洛谷】P2935 [USACO09JAN] Best Spot S
  • 2025年5月一区SCI-状态优化算法Status-based Optimization-附Matlab免费代码
  • CVE-2017-12615源码分析与漏洞复现(Tomcat 任意文件上传)
  • 工程论文: TORL: Scaling Tool-Integrated RL
  • day28/60
  • 1005. Maximize Sum Of Array After K Negations
  • 如何用python读取大的xml文件,示例为1.9G的xml文件
  • HarmonyOS - UIObserver(无感监听)
  • 巴中建设厅网站电话/企业查询平台
  • 网站建设的设计与实现/google chrome官网入口
  • 网站服务器哪里的好/百度推广客服投诉电话
  • 河南建设信息网首页/网站seo排名优化
  • 网站怎么做留言板/外链是什么意思
  • 建设自己的网站需要哪些步骤/百度竞价ocpc