LeetCode 分类题单
2026-07-02
共整理 78 道题。这里只记录题目链接和简要题意,不包含解法与代码。
一、链表
节点删除与去重
- 237. 删除链表中的节点给定链表中一个非末尾节点,在无法访问头节点的情况下将该节点从链表中删除。
- 83. 删除排序链表中的重复元素删除已排序链表中的重复元素,使每个值只保留一个节点。
- 82. 删除排序链表中的重复元素 II删除已排序链表中所有出现过重复值的节点,只留下原本不重复的值。
- 203. 移除链表元素删除链表中所有值等于指定值的节点,并返回新的头节点。
- 3217. 从链表中移除在数组中存在的节点删除链表中节点值出现在给定数组里的所有节点。
- 2487. 从链表中移除节点删除右侧存在更大值的所有节点,并返回处理后的链表。
位置、双指针与区间连接
- 19. 删除链表的倒数第 N 个结点删除链表倒数第 N 个节点,并返回链表头节点。
- 1669. 合并两个链表删除第一个链表中下标 a 到 b 的区间,并把第二个链表接入该位置。
链表运算、合并与排序
- 2. 两数相加两个链表以逆序保存两个非负整数的各位数字,将它们相加并用同样形式返回结果链表。
- 21. 合并两个有序链表合并两个升序链表,返回一个由原节点组成的新升序链表。
- 23. 合并 K 个升序链表将链表数组中的所有升序链表合并成一个新的升序链表。
- 148. 排序链表将给定链表按节点值升序排列,并返回排序后的链表。
特殊结构、相交与回文
- 141. 环形链表判断一个链表中是否存在能够沿 next 指针再次到达的环。
- 142. 环形链表 II若链表存在环,返回开始入环的第一个节点;否则返回空。
- 160. 相交链表找出两个无环单链表相交的起始节点;若不相交则返回空。
- 234. 回文链表判断一个单链表从前向后和从后向前读取时是否相同。
- 138. 随机链表的复制深拷贝一个同时具有 next 指针和 random 指针的链表,使复制链表不再引用原链表节点。
二、二叉树
深度与结构判断
- 104. 二叉树的最大深度求从根节点到最远叶子节点的最长路径所包含的节点数。
- 111. 二叉树的最小深度求从根节点到最近叶子节点的最短路径所包含的节点数。
- 100. 相同的树判断两棵二叉树的结构是否相同,并且对应节点的值是否相等。
- 101. 对称二叉树判断一棵二叉树是否以根节点为轴呈镜像对称。
- 110. 平衡二叉树判断每个节点的左右子树高度差是否都不超过 1。
- 965. 单值二叉树判断二叉树中的所有节点是否具有相同的值。
路径与祖先状态
- 404. 左叶子之和计算二叉树中所有左叶子节点的值之和。
- 112. 路径总和判断是否存在一条从根节点到叶子节点的路径,使路径节点值之和等于目标值。
- 129. 求根节点到叶节点数字之和把每条根到叶路径上的数字依次拼成一个整数,求这些整数的总和。
- 1448. 统计二叉树中好节点的数目统计从根到该节点的路径上不存在比它更大节点的节点数量。
- 1026. 节点与其祖先之间的最大差值求祖先节点与后代节点之间节点值绝对差的最大值。
- 1372. 二叉树中的最长交错路径求在左右方向之间不断交替前进时,二叉树中最长路径的边数。
- 1080. 根到叶路径上的不足节点删除所有无法属于一条节点和不小于限制值的根到叶路径的节点。
遍历、层次与视图
- 987. 二叉树的垂序遍历按列从左到右输出节点;同列节点按行号和值的规则排序。
- 199. 二叉树的右视图返回从二叉树右侧观察时,每一层能够看到的节点值。
- 102. 二叉树的层序遍历逐层从左到右访问二叉树中的节点,并按层返回节点值。
- 103. 二叉树的锯齿形层序遍历逐层遍历二叉树,并让相邻两层的访问方向在从左到右和从右到左之间交替。
- 513. 找树左下角的值返回二叉树最深一层中最左侧节点的值。
树的变换、等价与统计
- 951. 翻转等价二叉树判断两棵树能否通过任意次交换节点的左右子树而变得相同。
- 226. 翻转二叉树交换二叉树中每个节点的左右子树,返回翻转后的根节点。
- 617. 合并二叉树叠加两棵二叉树,重合节点的值相加,非重合节点保留原值。
- 2331. 计算布尔二叉树的值叶子节点表示布尔值,非叶子节点表示逻辑运算,求整棵树的布尔结果。
- 508. 出现次数最多的子树元素和计算每个节点对应子树的节点值总和,返回出现频率最高的一个或多个总和。
删点成林与最近公共祖先
- 1110. 删点成林删除指定值的节点,并返回删除后形成的所有独立二叉树。
- 236. 二叉树的最近公共祖先在普通二叉树中寻找两个指定节点的最近公共祖先。
- 1123. 最深叶节点的最近公共祖先寻找能够同时覆盖所有最深叶子节点的最近公共祖先。
三、二叉搜索树
验证、搜索与范围统计
- 98. 验证二叉搜索树判断一棵二叉树是否满足所有左子树值严格更小、所有右子树值严格更大的性质。
- 700. 二叉搜索树中的搜索在二叉搜索树中查找指定值,并返回以对应节点为根的子树。
- 938. 二叉搜索树的范围和计算二叉搜索树中节点值位于闭区间 low 到 high 内的所有节点值之和。
- 530. 二叉搜索树的最小绝对差求二叉搜索树中任意两个不同节点值之间的最小绝对差。
查询与最近公共祖先
- 2476. 二叉搜索树最近节点查询对每个查询值,分别找出树中不大于它的最大值和不小于它的最小值。
- 235. 二叉搜索树的最近公共祖先利用二叉搜索树的有序性质,寻找两个指定节点的最近公共祖先。
四、矩阵
矩阵搜索
- 240. 搜索二维矩阵 II在每行从左到右递增、每列从上到下递增的矩阵中查找目标值。
矩阵模拟与原地修改
- 48. 旋转图像将一个正方形矩阵表示的图像原地顺时针旋转 90 度。
- 54. 螺旋矩阵按照顺时针螺旋顺序返回矩阵中的所有元素。
- 73. 矩阵置零若矩阵中的一个元素为零,就把它所在行和列的所有元素原地设为零。
五、数组、哈希与字符串
哈希与连续序列
- 1. 两数之和在整数数组中找出和为目标值的两个元素,并返回它们的下标。
- 49. 字母异位词分组把由相同字母以不同顺序组成的字符串归入同一组。
- 128. 最长连续序列在未排序数组中找出数字连续的最长序列长度,元素在原数组中不必相邻。
位运算与缺失数字
- 137. 只出现一次的数字 II整数数组中除一个元素只出现一次外,其余元素都出现三次,找出这个只出现一次的元素。
- 260. 只出现一次的数字 III整数数组中恰有两个元素只出现一次,其余元素都出现两次,找出这两个只出现一次的元素。
- 268. 丢失的数字数组包含范围 0 到 n 中的 n 个不同数字,找出该范围内没有出现的数字。
- 389. 找不同字符串 t 由字符串 s 的字符打乱后再加入一个字符得到,找出这个新增字符。
- 645. 错误的集合集合 1 到 n 中有一个数字重复并导致另一个数字缺失,找出重复值和缺失值。
双指针与原地处理
- 15. 三数之和返回数组中所有和为零且互不重复的三元组。
- 283. 移动零原地把数组中的所有零移动到末尾,同时保持非零元素的相对顺序。
- 41. 缺失的第一个正数在未排序整数数组中找出没有出现的最小正整数。
- 31. 下一个排列将整数数组原地修改为字典序中的下一个更大排列;若不存在,则重排为最小排列。
- 75. 颜色分类把只包含 0、1、2 的数组原地排序,使相同数字相邻并按 0、1、2 排列。
子数组与前缀和
- 53. 最大子数组和找出整数数组中元素和最大的连续非空子数组,并返回其总和。
- 560. 和为 K 的子数组统计整数数组中元素和等于 K 的连续非空子数组数量。
区间与滑动窗口
- 56. 合并区间合并所有相互重叠的区间,返回互不重叠且覆盖原输入的区间集合。
- 239. 滑动窗口最大值大小为 K 的窗口从数组左端滑到右端时,返回每个窗口内的最大值。
- 438. 找到字符串中所有字母异位词找出字符串中所有与给定模式串互为字母异位词的子串起始位置。
六、回溯
排列、组合与子集
- 46. 全排列返回一个不含重复数字的数组的所有可能全排列。
- 77. 组合返回范围 1 到 n 中所有由 K 个数组成的组合。
- 216. 组合总和 III从 1 到 9 中选出 K 个互不重复的数字,返回所有和为 n 的组合。
- 78. 子集返回一个元素互不相同的数组的所有子集,且结果中不能有重复子集。
字符串构造与分割
- 22. 括号生成给定括号对数 n,生成所有可能且有效的括号组合。
- 131. 分割回文串把字符串分割成若干回文子串,返回所有可能的分割方案。
- 17. 电话号码的字母组合根据电话按键的数字到字母映射,返回输入数字串能够表示的所有字母组合。