首页
/
行业洞察
/
正文
INDUSTRY INSIGHT · 深度
DeepSeek LeetCode 147. 对链表进行插入排序 Golang实现
📅 2026/10/3 2:38:40
✍️ 爱科研究院
👁 阅读 3,247
// Definition for singly-linked list.// type ListNode struct {// Val int// Next *ListNode// }funcinsertionSortList(head*ListNode)*ListNode{dummy:ListNode{}// 哑结点dummy.Next 是已排序部分cur:headforcur!nil{// 保存下一个待处理节点next:cur.Next// 在已排序部分找插入位置最后一个 Val cur.Val 的节点prev:dummyforprev.Next!nilprev.Next.Valcur.Val{prevprev.Next}// 把 cur 插入到 prev 之后cur.Nextprev.Next prev.Nextcur curnext}returndummy.Next}思路和其他语言版本完全一致维护一个有序部分每次从原链表取出一个节点插到有序部分的正确位置。· dummy 是哑结点dummy.Next 指向已排序链表的头部统一处理「插入到头部」和「插入到中间」。· 对每个 cur从 dummy 往后找停在最后一个 Val cur.Val 的节点 prev。· 把 cur 接到 prev 后面。· 先保存 next : cur.Next因为后面会改写 cur.Next。用 保证稳定性相等元素保持原有相对顺序。复杂度· 时间O(n²)最坏情况每个节点都要从头扫描已排序部分。· 空间O(1)原地排序只用常数个指针。测试packagemainimportfmttypeListNodestruct{ValintNext*ListNode}funcfromSlice(vals[]int)*ListNode{dummy:ListNode{}cur:dummyfor_,v:rangevals{cur.NextListNode{Val:v}curcur.Next}returndummy.Next}functoSlice(head*ListNode)[]int{varres[]intforhead!nil{resappend(res,head.Val)headhead.Next}returnres}funcmain(){fmt.Println(toSlice(insertionSortList(fromSlice([]int{4,2,1,3}))))// [1 2 3 4]fmt.Println(toSlice(insertionSortList(fromSlice([]int{-1,5,3,4,0}))))// [-1 0 3 4 5]fmt.Println(toSlice(insertionSortList(fromSlice([]int{1}))))// [1]fmt.Println(toSlice(insertionSortList(nil)))// []}小细节· Go 里没有类方法约束直接写函数即可LeetCode 上就是顶层函数。· dummy : ListNode{} 的 Val 用零值 0 即可比较从 dummy.Next 开始。· 如果面试要求写成方法可以定义 type LRU… 类似的结构但这题通常就写顶层函数。· 链表节点是引用语义插入操作只需改 Next 指针天然原地排序。
📌 标签:
工业官网
设计趋势
AI 建站
SEO
获取完整报告 →
RELATED ARTICLES
推荐阅读
2026/10/3 2:33:39
【2026 收藏版】大模型工程师完整成长路线|从理论到 Agent 实战
2026/10/3 2:33:39
【AI黑话日日新】Day 050|Distillation(知识蒸馏)
2026/10/3 2:33:39
小白程序员轻松入门大模型:高效多模态学习全栈路线图解析
2026/10/3 4:53:48
PHP全栈开发新范式:一套开箱即用的开源生态全家桶解析
2026/10/3 4:53:48
OpenShell完全指南:让Windows 10/11找回高效经典开始菜单
2026/10/3 4:53:48
DeepSeek Harness桌面端安装配置与插件实战指南
2026/10/3 4:53:48
基于OpenCV和Python的车牌识别计费系统毕业设计全解析
2026/10/3 4:53:48
OpenShell 完全指南:将 Windows 11 开始菜单改造为高效经典样式
2026/10/3 4:48:48
恶意代码分析入门:从零搭建病毒分析环境与实战流程
2026/10/3 0:03:29
GitHub 热门: NVIDIA/Model-Optimizer
2026/10/3 0:03:29
C语言流程控制全解析:从if、循环到嵌套与调试实战
2026/10/3 0:03:29
2026全球总决赛观赛攻略:赛程节点、时差换算与作息调整全解析
2026/10/1 22:21:25
网站建设的英语怎么说?别只背单词,看完这套安全完整流程才敢上线
2026/10/2 12:21:42
新手入门看这篇:建设网站加盟避坑指南与SEO实操
2026/10/1 21:38:34
论文AIGC疑似度是什么意思?想查论文AI率有哪些免费工具?
2026/10/2 12:19:13
我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频
2026/10/2 4:07:50
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证
2026/10/2 6:07:10
2026 大模型集体涨价:用 Python 做企业 Token 成本测算与选型避坑(附配置)