#07. 树

#二叉树的遍历题目

题号 标题 题解 标签 难度
0144 二叉树的前序遍历 Python 栈、树、深度优先搜索、二叉树 简单
0094 二叉树的中序遍历 Python
0145 二叉树的后序遍历 Python
0102 二叉树的层序遍历 Python 树、广度优先搜索、二叉树 中等
0103 二叉树的锯齿形层序遍历 Python
0107 二叉树的层序遍历 II Python
0104 二叉树的最大深度 Python 树、深度优先搜索、广度优先搜索、二叉树 简单
0111 二叉树的最小深度 Python
0124 二叉树中的最大路径和 Python 树、深度优先搜索、动态规划、二叉树 困难
0101 对称二叉树 Python 树、深度优先搜索、广度优先搜索、二叉树 简单
0112 路径总和 Python
0113 路径总和 II Python 树、深度优先搜索、回溯、二叉树 中等
0236 二叉树的最近公共祖先 Python 树、深度优先搜索、二叉树
0199 二叉树的右视图 Python 树、深度优先搜索、广度优先搜索、二叉树
0226 翻转二叉树 Python 简单
0958 二叉树的完全性检验 Python 树、广度优先搜索、二叉树 中等
0572 另一棵树的子树 树、深度优先搜索、二叉树、字符串匹配、哈希函数 简单
0100 相同的树 Python 树、深度优先搜索、广度优先搜索、二叉树
0116 填充每个节点的下一个右侧节点指针 Python 树、深度优先搜索、广度优先搜索、链表、二叉树 中等
0117 填充每个节点的下一个右侧节点指针 II Python
0297 二叉树的序列化与反序列化 Python 树、深度优先搜索、广度优先搜索、设计、字符串、二叉树 困难
0114 二叉树展开为链表 栈、树、深度优先搜索、链表、二叉树 中等

#二叉树的还原题目

题号 标题 题解 标签 难度
0105 从前序与中序遍历序列构造二叉树 Python 树、数组、哈希表、分治、二叉树 中等
0106 从中序与后序遍历序列构造二叉树 Python
0889 根据前序和后序遍历构造二叉树 Python

#二叉搜索树题目

题号 标题 题解 标签 难度
0098 验证二叉搜索树 Python 树、深度优先搜索、二叉搜索树、二叉树 中等
0173 二叉搜索树迭代器 Python 栈、树、设计、二叉搜索树、二叉树、迭代器
0700 二叉搜索树中的搜索 Python 树、二叉搜索树、二叉树 简单
0701 二叉搜索树中的插入操作 Python 中等
0450 删除二叉搜索树中的节点 Python
0703 数据流中的第 K 大元素 Python 树、设计、二叉搜索树、二叉树、数据流、堆(优先队列) 简单
剑指 Offer 54 二叉搜索树的第k大节点 Python 树、深度优先搜索、二叉搜索树、二叉树
0230 二叉搜索树中第K小的元素 中等
0235 二叉搜索树的最近公共祖先 Python
0426 将二叉搜索树转化为排序的双向链表 Python 栈、树、深度优先搜索、二叉搜索树、链表、二叉树、双向链表
0108 将有序数组转换为二叉搜索树 Python 树、二叉搜索树、数组、分治、二叉树 简单
0110 平衡二叉树 Python 树、深度优先搜索、二叉树

#线段树题目

#单点更新题目

题号 标题 题解 标签 难度
0303 区域和检索 - 数组不可变 Python 设计、数组、前缀和 简单
0307 区域和检索 - 数组可修改 Python 设计、树状数组、线段树、数组 中等
0354 俄罗斯套娃信封问题 Python 数组、二分查找、动态规划、排序 困难

#区间更新题目

题号 标题 题解 标签 难度
0370 区间加法 Python 数组、前缀和 中等
1109 航班预订统计 Python
1450 在既定时间做作业的学生人数 Python 数组 简单
0673 最长递增子序列的个数 Python 树状数组、线段树、数组、动态规划 中等
1310 子数组异或查询 Python 位运算、数组、前缀和
1851 包含每个查询的最小区间 数组、二分查找、排序、扫描线、堆(优先队列) 困难

#区间合并题目

题号 标题 题解 标签 难度
0729 我的日程安排表 I Python 设计、线段树、二分查找、有序集合 中等
0731 我的日程安排表 II Python
0732 我的日程安排表 III Python 困难

#扫描线问题

题号 标题 题解 标签 难度
0218 天际线问题 Python 树状数组、线段树、数组、分治、有序集合、扫描线、堆(优先队列) 困难
0391 完美矩形 Python 数组、扫描线
0850 矩形面积 II Python 线段树、数组、有序集合、扫描线

#树状数组题目

题号 标题 题解 标签 难度
0303 区域和检索 - 数组不可变 Python 设计、数组、前缀和 简单
0307 区域和检索 - 数组可修改 Python 设计、树状数组、线段树、数组 中等
0315 计算右侧小于当前元素的个数 Python 树状数组、线段树、数组、二分查找、分治、有序集合、归并排序 困难
1450 在既定时间做作业的学生人数 Python 数组 简单
0354 俄罗斯套娃信封问题 Python 数组、二分查找、动态规划、排序 困难
0673 最长递增子序列的个数 Python 树状数组、线段树、数组、动态规划 中等
1310 子数组异或查询 Python 位运算、数组、前缀和
1893 检查是否区域内所有整数都被覆盖 Python 数组、哈希表、前缀和 简单

#并查集题目

题号 标题 题解 标签 难度
0990 等式方程的可满足性 Python 并查集、图、数组、字符串 中等
0547 省份数量 Python 深度优先搜索、广度优先搜索、并查集、图
0684 冗余连接 Python
1319 连通网络的操作次数 Python
0765 情侣牵手 Python 贪心、深度优先搜索、广度优先搜索、并查集、图 困难
0399 除法求值 Python 深度优先搜索、广度优先搜索、并查集、图、数组、最短路 中等
0959 由斜杠划分区域 Python 深度优先搜索、广度优先搜索、并查集、图
1631 最小体力消耗路径 Python 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列)
0778 水位上升的泳池中游泳 Python 困难
1202 交换字符串中的元素 Python 深度优先搜索、广度优先搜索、并查集、哈希表、字符串 中等
0947 移除最多的同行或同列石头 Python 深度优先搜索、并查集、图
0803 打砖块 Python 并查集、数组、矩阵 困难
0128 最长连续序列 Python 并查集、数组、哈希表 中等

#08. 图论

#图的深度优先搜索题目

题号 标题 题解 标签 难度
0797 所有可能的路径 Python 深度优先搜索、广度优先搜索、图、回溯 中等
0200 岛屿数量 Python 深度优先搜索、广度优先搜索、并查集、数组、矩阵
0695 岛屿的最大面积 Python
0133 克隆图 Python 深度优先搜索、广度优先搜索、图、哈希表
0494 目标和 Python 数组、动态规划、回溯
0144 二叉树的前序遍历 Python 栈、树、深度优先搜索、二叉树 简单
0094 二叉树的中序遍历 Python
0145 二叉树的后序遍历 Python
0589 N 叉树的前序遍历 Python 栈、树、深度优先搜索
0590 N 叉树的后序遍历 Python
0124 二叉树中的最大路径和 Python 树、深度优先搜索、动态规划、二叉树 困难
0199 二叉树的右视图 Python 树、深度优先搜索、广度优先搜索、二叉树 中等
0543 二叉树的直径 Python 树、深度优先搜索、二叉树 简单
0662 二叉树最大宽度 Python 树、深度优先搜索、广度优先搜索、二叉树 中等
0958 二叉树的完全性检验 Python 树、广度优先搜索、二叉树
0572 另一棵树的子树 树、深度优先搜索、二叉树、字符串匹配、哈希函数 简单
0100 相同的树 Python 树、深度优先搜索、广度优先搜索、二叉树
0111 二叉树的最小深度 Python
0841 钥匙和房间 Python 深度优先搜索、广度优先搜索、图 中等
0129 求根节点到叶节点数字之和 Python 树、深度优先搜索、二叉树
0323 无向图中连通分量的数目 Python 深度优先搜索、广度优先搜索、并查集、图
0684 冗余连接 Python
0802 找到最终的安全状态 Python 深度优先搜索、广度优先搜索、图、拓扑排序
0785 判断二分图 Python 深度优先搜索、广度优先搜索、并查集、图
0886 可能的二分法 Python
0323 无向图中连通分量的数目 Python
0130 被围绕的区域 Python 深度优先搜索、广度优先搜索、并查集、数组、矩阵
0417 太平洋大西洋水流问题 Python 深度优先搜索、广度优先搜索、数组、矩阵
1020 飞地的数量 Python 深度优先搜索、广度优先搜索、并查集、数组、矩阵
1254 统计封闭岛屿的数目 Python
1034 边界着色 Python 深度优先搜索、广度优先搜索、数组、矩阵
剑指 Offer 13 机器人的运动范围 Python 深度优先搜索、广度优先搜索、动态规划
0529 扫雷游戏 深度优先搜索、广度优先搜索、数组、矩阵

#图的广度优先搜索题目

题号 标题 题解 标签 难度
0797 所有可能的路径 Python 深度优先搜索、广度优先搜索、图、回溯 中等
0286 墙与门 Python 广度优先搜索、数组、矩阵
0200 岛屿数量 Python 深度优先搜索、广度优先搜索、并查集、数组、矩阵
0752 打开转盘锁 Python 广度优先搜索、数组、哈希表、字符串
0279 完全平方数 Python 广度优先搜索、数学、动态规划
0133 克隆图 Python 深度优先搜索、广度优先搜索、图、哈希表
0733 图像渲染 Python 深度优先搜索、广度优先搜索、数组、矩阵 简单
0542 01 矩阵 Python 广度优先搜索、数组、动态规划、矩阵 中等
0322 零钱兑换 Python 广度优先搜索、数组、动态规划
0323 无向图中连通分量的数目 Python 深度优先搜索、广度优先搜索、并查集、图
剑指 Offer 13 机器人的运动范围 Python 深度优先搜索、广度优先搜索、动态规划
0199 二叉树的右视图 Python 树、深度优先搜索、广度优先搜索、二叉树
0662 二叉树最大宽度 Python
0958 二叉树的完全性检验 Python 树、广度优先搜索、二叉树
0572 另一棵树的子树 树、深度优先搜索、二叉树、字符串匹配、哈希函数 简单
0100 相同的树 Python 树、深度优先搜索、广度优先搜索、二叉树
0111 二叉树的最小深度 Python
剑指 Offer 32 - III 从上到下打印二叉树 III Python 树、广度优先搜索、二叉树 中等

#图的拓扑排序题目

题号 标题 题解 标签 难度
0207 课程表 Python 深度优先搜索、广度优先搜索、图、拓扑排序 中等
0210 课程表 II Python
1136 并行课程 Python 图、拓扑排序
2050 并行课程 III Python 图、拓扑排序、数组、动态规划 困难
0802 找到最终的安全状态 Python 深度优先搜索、广度优先搜索、图、拓扑排序 中等
0851 喧闹和富有 Python 深度优先搜索、图、拓扑排序、数组

#图的最小生成树题目

题号 标题 题解 标签 难度
1584 连接所有点的最小费用 并查集、图、数组、最小生成树 中等
1631 最小体力消耗路径 Python 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列)
0778 水位上升的泳池中游泳 Python 困难

#单源最短路径题目

题号 标题 题解 标签 难度
0407 接雨水 II 广度优先搜索、数组、矩阵、堆(优先队列) 困难
0743 网络延迟时间 深度优先搜索、广度优先搜索、图、最短路、堆(优先队列) 中等
0787 K 站中转内最便宜的航班 深度优先搜索、广度优先搜索、图、动态规划、最短路、堆(优先队列)
1631 最小体力消耗路径 Python 深度优先搜索、广度优先搜索、并查集、数组、二分查找、矩阵、堆(优先队列)
1786 从第一个节点出发到最后一个节点的受限路径数 图、拓扑排序、动态规划、最短路、堆(优先队列)

#多源最短路径题目

题号 标题 题解 标签 难度
0815 公交路线 广度优先搜索、数组、哈希表 困难
1162 地图分析 广度优先搜索、数组、动态规划、矩阵 中等

#次短路径题目

题号 标题 题解 标签 难度
2045 到达目的地的第二短时间 广度优先搜索、图、最短路 困难

#差分约束系统

题号 标题 题解 标签 难度
0995 K 连续位的最小翻转次数 Python 位运算、队列、数组、前缀和、滑动窗口 困难
1109 航班预订统计 Python 数组、前缀和 中等

#二分图基础题目

题号 标题 题解 标签 难度
0785 判断二分图 Python 深度优先搜索、广度优先搜索、并查集、图 中等

#二分图最大匹配题目

题号 标题 题解 标签 难度
LCP 04 覆盖 位运算、图、数组、动态规划、状态压缩 困难
1947 最大兼容性评分和 Python 位运算、数组、动态规划、回溯、状态压缩 中等
1595 连通两组点的最小成本 Python 位运算、数组、动态规划、状态压缩、矩阵 困难