给定一个单链表
L的头节点head,单链表L表示为:
L0 → L1 → … → Ln-1 → Ln
请将其重新排列后变为:
L0 → Ln → L1 → Ln-1 → L2 → Ln-2 → …不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNode next; * public ListNode(int val=0, ListNode next=null) { * this.val = val; * this.next = next; * } * } */ public class Solution { public void ReorderList(ListNode head) { // 思路:将列表中的所有节点添加到栈中,每次插入时就从栈中取出 // 边界条件:head不能为null或者head.next不能为null if (head == null || head.next == null) return; // 将所有的节点压入栈中 Stack<ListNode> nodeStack = new Stack<ListNode>(); // 定义一个peekNode指向栈顶节点 ListNode peekNode = head; while (peekNode != null) { nodeStack.Push(peekNode); peekNode = peekNode.next; } peekNode = nodeStack.Peek(); // 定义一个preNode指向当前的前一个执行了插入的节点,初值为null ListNode preNode = null; // 定义一个nextNode指向下一个需要执行插入的节点,初值为head ListNode nextNode = head; // 临时节点 ListNode tmpNode = null; // 进行一个while循环,循环条件为preNode不能等于栈顶节点或者nextNode不能等于栈顶节点 while ( preNode != peekNode && nextNode != peekNode) { tmpNode = nextNode.next != peekNode ? nextNode.next : null; // 执行插入操作 preNode = nextNode; nextNode.next = peekNode; peekNode.next = tmpNode; nodeStack.Pop(); peekNode = nodeStack.Peek(); nextNode = tmpNode; } // 质空尾部 if(nextNode != null) nextNode.next = null; } }
【剑指Offer】026. 重排链表
张小明
前端开发工程师
计算机深度学习毕设实战-基于人工智能python深度学习的餐桌美食识别
博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…
全网最全专科生AI论文网站TOP9:开题报告文献综述必备
全网最全专科生AI论文网站TOP9:开题报告文献综述必备 2026年专科生AI论文写作工具测评:为何值得一看? 随着人工智能技术的不断发展,越来越多的专科生开始借助AI工具提升论文写作效率。然而,面对市场上琳琅满目的平台&a…
高通推出全套机器人技术组合,含 Dragonwing IQ10 系列处理器
2026年1月5日,拉斯维加斯——在国际消费电子展(CES)上,高通科技公司推出了下一代机器人综合架构,集成了硬件、软件和复合人工智能。高通科技还发布了其最新的高性能机器人处理器,面向工业AMR和先进的全尺寸…
数据分析 “智脑” 上线!虎贲等考 AI:零代码解锁深度洞察,数据价值直达顶刊
在学术科研与论文创作中,数据分析是连接原始数据与核心结论的关键桥梁。但多数科研人面临困境:手握海量数据却不知如何挖掘价值,精通基础工具却搞不定复杂模型,熬夜算出结果却无法转化为学术表达,让辛苦收集的数据沦为…
电子器件烧毁的底层逻辑与避坑指南
电子器件的 “烧毁”,是电路设计与实际应用中最常见的故障之一。从小小的 LDO 稳压芯片到驱动电机的电调,看似不同的器件,烧毁的核心逻辑却高度相通 —— 本质都是器件的实际工作参数突破了自身的物理与热极限,且缺乏有效的保护机…
智慧城市运维管理平台解决方案
随着城市化进程加快,道路路灯、新能源充电桩、供排水泵站等公共设施越来越多,传统“人海巡查被动报修”的运维模式早已力不从心。设施分布分散、类型复杂、故障响应滞后、数据碎片化等痛点,不仅降低城市管理效率,更直接影响市民生…