给定一个单链表
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. 重排链表
张小明
前端开发工程师
真香警告!上下文工程才是AI开发未来,RAG已死?大模型开发者必看!
RAG已死,上下文工程永存:从炼金术到工程学 当所有人都在为百万级上下文窗口欢呼时,一个残酷的现实被揭开:你塞给模型的信息越多,它反而变得越笨。 你有没有觉得,我们现在开发AI应用特别像在搞一场神秘的炼金…
Shiro漏洞利用工具,更新V0.2!
工具介绍 Shiro漏洞利用工具,更新ShiroEXP V0.2工具功能 爆破key及加密方式(已完成)漏洞探测(已完成Shiro550 URLDNS探测)探测回显链(已完成CB1TomcatEcho、Spring、AllEcho回显链)漏洞利用(已完成命令执行、Shell模式)注入内存马(支持蚁剑、冰蝎、哥斯拉等filter、…
卷不动了?2025年AI编程工具大盘点:DeepSeek-Coder V3夺冠,代码生成效率提升300%,小白秒变大神!
年度大模型(Foundation Models):专精 1.1 年度写作大模型 入围: GPT-4o Ultra、文心一言5.0、通义千问3.5、Claude 3.5 Sonnet、DeepSeek-R1-Write获奖者: GPT-4o Ultra获奖理由: 依托2025年ACL顶会EssayJudge多粒度写作测评与Lak 2025自动化写作评估&…
震惊!一堆矩阵乘法居然让AI学会了思考?程序员必懂的LLM底层原理
为什么一堆矩阵乘法(Matrix Multiplication)最终会涌现出逻辑推理和看似“有意识”的对话能力? 大语言模型(LLM)之所以会有智能,我认为可以归纳为三个层面的“奇迹”:**高维空间的语义映射**、*…
从“懂行的疯子“到“思考的AI“:大模型后训练黑科技,让你的AI不再“复读“而是“思考“!
后训练 想象力科技的工程师兴奋地对着刚训练好的 Base Model 输入:“请帮我写一份投标方案。” 结果模型不仅没写方案,反而开始续写:“……的注意事项有以下三点…”,甚至开始罗列训练数据里的无关代码。 团队意识到,…
CSDN资源等级如何提升?综合贡献分如何提高?
长话短说,只有三种方式可以提升综合贡献分。方式一:完成成长任务完成此处的成长任务,通过审核即可增加综合贡献分,这个每天不限量,完成多少都可以,但是每个任务只能完成一次。方式二:完成热点任…