给定一个单链表
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. 重排链表
张小明
前端开发工程师
闭包不难懂:前端开发者必须掌握的JavaScript核心技巧(附实战场
闭包不难懂:前端开发者必须掌握的JavaScript核心技巧(附实战场闭包不难懂:前端开发者必须掌握的JavaScript核心技巧(附实战场景)引言:从一个让人困惑的小例子说起闭包到底是什么?别被术语吓到作…
问卷设计 “传统派 VS AI 派” 终极对决!虎贲等考 AI:让调研效率与质量双向碾压
做学术调研、市场分析、教学评估,问卷设计是绕不开的关键环节。有人坚守 “传统人工设计”,坚信 “逐字打磨才够精准”,却在逻辑漏洞、表述歧义中反复内耗;有人拥抱 “普通 AI 设计”,期待 “高效产出”,却…
震惊!AI已悄悄内化为你的编程伙伴,小白开发者必知的5大生存法则
主要内容 LLM的渗透已进入“内化期”。市场关注点正从单纯的流量规模转向量化的价值创造(推理深度、职场渗透率、生态协同)。厂商竞争的关键点将在于如何通过提升“逻辑深度”来优化“信息质量”,并在职场及全球化增量市场中实现差异化价值捕…
DeepSeek R1引爆开源狂潮!国产大模型“十强混战“,小白程序员如何上车?
导 读 2025 年,DeepSeek R1 引爆全民开源热潮,国产 LLM 从“一家独大”跃入“十强混战”。智谱、MiniMax 冲刺 IPO,Qwen3、Kimi K2、GLM-4.5 轮番刷新性能榜,开源与闭源差距史上最小。多模态、端侧、Agent 成 2026 新赛点&#x…
MindSpore动态图静态图融合开发实践
一、引言MindSpore作为昇腾生态下的全场景AI框架,凭借其动态图(PyNative)与静态图(Graph)融合的独特优势,既满足了开发者在模型调试阶段对灵活性的需求,又能保障模型部署时的高性能。动态图模式…
【建议收藏】RAG技术深度剖析:从原理到实践,小白也能轻松掌握的检索增强生成指南
本文全面介绍RAG(检索增强生成)技术,详解其三种范式(Naive RAG、Advanced RAG、Modular RAG)与七步工作流程:知识分块、生成嵌入、向量存储、查询嵌入、语义检索、重排序和增强生成。文章包含RAG评估方法与…