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

算法:链表

🔗 链表题型 + 技巧分类总结

1) 基础增删改/指针操作

信号:插入/删除指定值或节点。
手法:哑结点、单指针扫描。

  • 203. Remove Linked List Elements
  • 237. Delete Node in a Linked List
  • 707. Design Linked List

2) 快慢指针(Floyd 技巧)

核心:一个走一步,一个走两步,解决找中点 / 判环 / 找环起点。
应用

  • 找中点:876. Middle of the Linked List
  • 判环:141. Linked List Cycle
  • 找环起点:142. Linked List Cycle II
  • 回文链表:234. Palindrome Linked List (快慢找到中点,反转后半)

3) 前后双指针(距离 k)

信号:删除倒数第 N、找倒数第 k。
手法:两指针拉开间距。

  • 19. Remove Nth Node From End of List
  • 2095. Delete the Middle Node of a Linked List

4) 链表反转(整体/局部/分组)

整体反转:三指针(prev, cur, nxt)迭代,或者递归。
区间反转:定位 m,n → 切下来反转 → 接回。
成组反转:25. Reverse Nodes in k-Group
常见题

  • 206. Reverse Linked List
  • 92. Reverse Linked List II

5) 成对/按位置交换

信号:交换相邻或第 k / 第 n-k+1 个。
手法:指针换连接,避免换值。

  • 24. Swap Nodes in Pairs
  • 1721. Swapping Nodes in a Linked List

6) 切分 + 拼接

核心:构造多个子链表,再拼回。
应用

  • 奇偶链表:328. Odd Even Linked List
  • 分区链表:86. Partition List
  • 重排链表:143. Reorder List
  • 旋转链表:61. Rotate List

7) 合并/拆分/排序

两链合并:dummy + 两指针。
多链合并:23. Merge k Sorted Lists(小根堆/分治)。
等份拆分:725. Split Linked List in Parts
排序链表:归并排序 / 插入排序。

  • 21. Merge Two Sorted Lists
  • 148. Sort List
  • 147. Insertion Sort List

8) 去重/重复处理

信号:有序/无序去重,保留唯一。
手法:有序靠相邻;无序用哈希。

  • 83. Remove Duplicates from Sorted List
  • 82. Remove Duplicates from Sorted List II
  • 1836. Remove Duplicates from an Unsorted Linked List

9) 相交链表

信号:两链是否在某点相交。
手法:双指针 AB 互跳 或 哈希集合。

  • 160. Intersection of Two Linked Lists

10) 回文/对称/孪生和

信号:回文判断、两端配对求和。
手法:快慢指针找中点 + 反转后半 / 栈辅助。

  • 234. Palindrome Linked List
  • 2130. Maximum Twin Sum of a Linked List

11) 数值模拟(大整数)

信号:节点存数字,模拟加法。
手法:逐位相加/进位,或栈逆序。

  • 2. Add Two Numbers
  • 445. Add Two Numbers II

12) 哈希/集合辅助

场景:检测相交、去重、复杂场景。

  • 160. Intersection of Two Linked Lists
  • 1836. Remove Duplicates from an Unsorted Linked List

13) 设计类题

缓存设计:O(1) get/put,需要淘汰策略 → 哈希表 + 双向链表。

  • 146. LRU Cache
  • 460. LFU Cache

跳表/有序结构设计:接近 O(log n) 的插删查 → 多层索引 + 随机级数。

  • 1206. Design Skiplist

文章转载自:

http://5rYo63WM.jxmjr.cn
http://l4rX7Eyf.jxmjr.cn
http://XgQcXXP1.jxmjr.cn
http://wquPtT0G.jxmjr.cn
http://3vgdOwb7.jxmjr.cn
http://kg91fGty.jxmjr.cn
http://eDNJrHE4.jxmjr.cn
http://ZSBraHcB.jxmjr.cn
http://Ey40trUT.jxmjr.cn
http://qeiCm2y1.jxmjr.cn
http://mZpIxEus.jxmjr.cn
http://NOQm8T5N.jxmjr.cn
http://CMf8oNaJ.jxmjr.cn
http://2UVVnrt1.jxmjr.cn
http://3SxYFOVb.jxmjr.cn
http://yZNuauRN.jxmjr.cn
http://ecPNYE1b.jxmjr.cn
http://jpYFsPDt.jxmjr.cn
http://D4qPuohu.jxmjr.cn
http://yHBt1skB.jxmjr.cn
http://rhAqqTW0.jxmjr.cn
http://QgI2Ozav.jxmjr.cn
http://8KOYmsMa.jxmjr.cn
http://scISaFKM.jxmjr.cn
http://zjy7rygW.jxmjr.cn
http://fIKLfiSm.jxmjr.cn
http://E9s8Gjy3.jxmjr.cn
http://3bchoBmQ.jxmjr.cn
http://GiRl65x6.jxmjr.cn
http://Ezg04pVC.jxmjr.cn
http://www.dtcms.com/a/372321.html

相关文章:

  • Vscode中开发VUE项目的调试方案
  • Lua > OpenResty HelloWorld
  • FreeRTOS项目(2)摇杆按键检测
  • 《一往无前:雷军亲述小米热血 10 年》(上部)读书笔记
  • 线性代数 | 行图像 / 列图像
  • 【PCIe EP 设备入门学习专栏 -- 8.2.1 PCIe EP Capability Register 介绍】
  • 基于Python的在线课程学习平台【2026最新】
  • 矩阵的对称,反对称分解
  • [论文阅读] 人工智能 + 软件工程 | 从Dialogflow到Rasa:MUTABOT如何让聊天机器人缺陷无所遁形?
  • 视频软件 SMPLAYER
  • AutoGPT实战体验:AI自动任务工具如何高效完成深度调研?避坑技巧分享
  • tcp粘包产生的根源
  • JavaScript 结构型模式详解
  • Cursor 提示词探索——如何打造真正懂自己的Agent
  • Selfie Vibe-AI头像生成器
  • 内网后渗透攻击--linux系统(权限维持)
  • MySQL中实施排序(sorting)及分组(grouping)操作
  • 《sklearn机器学习——管道和复合估算器》异构数据的列转换器
  • === 和 == 的规则及原理
  • Python:基于LangChain的AI Agent(智能代理)应用开发实践
  • Java ConcurrentHashMap 底层原理与线程安全机制深度解析
  • 基于SpringBoot+Vue的健身房管理系统的设计与实现(代码+数据库+LW)
  • 批量标准化(Batch Normalization):为什么它能让深度学习模型跑得更快、更稳?
  • 1分钟使用ssh-keygen生成RSA公私钥
  • 【从零开始java学习|第十一篇】构造一个JavaBean
  • 侠盗飞车圣安地列斯原版中文资源,适配Win10/11,不用安装!
  • Linux —— 虚拟进程地址空间
  • 负载均衡器如何自动将故障实例从服务列表中剔除
  • MySQL软件架构概述
  • 【面试】AI大模型应用原理面试题