Skip to content

Latest commit

 

History

History
246 lines (237 loc) · 62 KB

binary-tree.md

File metadata and controls

246 lines (237 loc) · 62 KB

二叉树

全部标签

数据结构

数组 矩阵 链表 双向链表 单调栈 队列 单调队列 堆(优先队列) 哈希表 字符串 字符串匹配 二叉树 二叉搜索树 最小生成树 有序集合 拓扑排序 最短路 强连通分量 欧拉回路 双连通分量 并查集 字典树 线段树 树状数组 后缀数组

算法

枚举 递归 分治 回溯 贪心 动态规划 排序 桶排序 计数排序 基数排序 归并排序 快速选择 二分查找 记忆化搜索 深度优先搜索 广度优先搜索 双指针 位运算 前缀和 计数 滑动窗口 状态压缩 哈希函数 滚动哈希 扫描线

其他

数学 数论 几何 博弈 模拟 组合数学 随机化 概率与统计 水塘抽样 拒绝采样 数据库 设计 数据流 脑筋急转弯 交互 迭代器 多线程


题号 标题 题解 标签 难度
94 二叉树的中序遍历 [✓] 深度优先搜索 1+ Easy
95 不同的二叉搜索树 II [✓] 二叉搜索树 动态规划 2+ Medium
96 不同的二叉搜索树 [✓] 二叉搜索树 数学 2+ Medium
98 验证二叉搜索树 [✓] 深度优先搜索 二叉搜索树 1+ Medium
99 恢复二叉搜索树 [✓] 深度优先搜索 二叉搜索树 1+ Medium
100 相同的树 [✓] 深度优先搜索 广度优先搜索 1+ Easy
101 对称二叉树 [✓] 深度优先搜索 广度优先搜索 1+ Easy
102 二叉树的层序遍历 [✓] 广度优先搜索 二叉树 Medium
103 二叉树的锯齿形层序遍历 [✓] 广度优先搜索 二叉树 Medium
104 二叉树的最大深度 [✓] 深度优先搜索 广度优先搜索 1+ Easy
105 从前序与中序遍历序列构造二叉树 [✓] 数组 哈希表 2+ Medium
106 从中序与后序遍历序列构造二叉树 [✓] 数组 哈希表 2+ Medium
107 二叉树的层序遍历 II [✓] 广度优先搜索 二叉树 Medium
108 将有序数组转换为二叉搜索树 [✓] 二叉搜索树 数组 2+ Easy
109 有序链表转换二叉搜索树 [✓] 二叉搜索树 链表 2+ Medium
110 平衡二叉树 [✓] 深度优先搜索 二叉树 Easy
111 二叉树的最小深度 [✓] 深度优先搜索 广度优先搜索 1+ Easy
112 路径总和 [✓] 深度优先搜索 广度优先搜索 1+ Easy
113 路径总和 II [✓] 深度优先搜索 回溯 1+ Medium
114 二叉树展开为链表 [✓] 深度优先搜索 2+ Medium
116 填充每个节点的下一个右侧节点指针 [✓] 深度优先搜索 广度优先搜索 2+ Medium
117 填充每个节点的下一个右侧节点指针 II [✓] 深度优先搜索 广度优先搜索 2+ Medium
124 二叉树中的最大路径和 [✓] 深度优先搜索 动态规划 1+ Hard
129 求根节点到叶节点数字之和 [✓] 深度优先搜索 二叉树 Medium
144 二叉树的前序遍历 [✓] 深度优先搜索 1+ Easy
145 二叉树的后序遍历 [✓] 深度优先搜索 1+ Easy
156 上下翻转二叉树 🔒 [✓] 深度优先搜索 二叉树 Medium
173 二叉搜索树迭代器 [✓] 设计 3+ Medium
199 二叉树的右视图 [✓] 深度优先搜索 广度优先搜索 1+ Medium
222 完全二叉树的节点个数 [✓] 位运算 二分查找 1+ Easy
226 翻转二叉树 [✓] 深度优先搜索 广度优先搜索 1+ Easy
230 二叉搜索树中第 K 小的元素 [✓] 深度优先搜索 二叉搜索树 1+ Medium
235 二叉搜索树的最近公共祖先 [✓] 深度优先搜索 二叉搜索树 1+ Medium
236 二叉树的最近公共祖先 [✓] 深度优先搜索 二叉树 Medium
250 统计同值子树 🔒 深度优先搜索 二叉树 Medium
255 验证二叉搜索树的前序遍历序列 🔒 二叉搜索树 4+ Medium
257 二叉树的所有路径 [✓] 深度优先搜索 字符串 2+ Easy
270 最接近的二叉搜索树值 🔒 深度优先搜索 二叉搜索树 2+ Easy
272 最接近的二叉搜索树值 II 🔒 深度优先搜索 4+ Hard
285 二叉搜索树中的中序后继 🔒 深度优先搜索 二叉搜索树 1+ Medium
297 二叉树的序列化与反序列化 [✓] 深度优先搜索 广度优先搜索 3+ Hard
298 二叉树最长连续序列 🔒 深度优先搜索 二叉树 Medium
314 二叉树的垂直遍历 🔒 深度优先搜索 广度优先搜索 3+ Medium
331 验证二叉树的前序序列化 字符串 1+ Medium
333 最大二叉搜索子树 🔒 深度优先搜索 二叉搜索树 2+ Medium
337 打家劫舍 III 深度优先搜索 动态规划 1+ Medium
366 寻找二叉树的叶子节点 🔒 [✓] 深度优先搜索 二叉树 Medium
404 左叶子之和 深度优先搜索 广度优先搜索 1+ Easy
426 将二叉搜索树转化为排序的双向链表 🔒 [✓] 深度优先搜索 4+ Medium
431 将 N 叉树编码为二叉树 🔒 深度优先搜索 广度优先搜索 2+ Hard
437 路径总和 III [✓] 深度优先搜索 二叉树 Medium
449 序列化和反序列化二叉搜索树 深度优先搜索 广度优先搜索 4+ Medium
450 删除二叉搜索树中的节点 [✓] 二叉搜索树 二叉树 Medium
501 二叉搜索树中的众数 深度优先搜索 二叉搜索树 1+ Easy
508 出现次数最多的子树元素和 深度优先搜索 哈希表 1+ Medium
510 二叉搜索树中的中序后继 II 🔒 二叉搜索树 二叉树 Medium
513 找树左下角的值 深度优先搜索 广度优先搜索 1+ Medium
515 在每个树行中找最大值 深度优先搜索 广度优先搜索 1+ Medium
530 二叉搜索树的最小绝对差 [✓] 深度优先搜索 广度优先搜索 2+ Easy
536 从字符串生成二叉树 🔒 深度优先搜索 2+ Medium
538 把二叉搜索树转换为累加树 深度优先搜索 二叉搜索树 1+ Medium
543 二叉树的直径 [✓] 深度优先搜索 二叉树 Easy
545 二叉树的边界 🔒 深度优先搜索 二叉树 Medium
549 二叉树最长连续序列 II 🔒 深度优先搜索 二叉树 Medium
563 二叉树的坡度 深度优先搜索 二叉树 Easy
572 另一棵树的子树 [✓] 深度优先搜索 二叉树 2+ Easy
606 根据二叉树创建字符串 深度优先搜索 字符串 1+ Medium
617 合并二叉树 [✓] 深度优先搜索 广度优先搜索 1+ Easy
623 在二叉树中增加一行 深度优先搜索 广度优先搜索 1+ Medium
637 二叉树的层平均值 [✓] 深度优先搜索 广度优先搜索 1+ Easy
652 寻找重复的子树 深度优先搜索 哈希表 1+ Medium
653 两数之和 IV - 输入二叉搜索树 深度优先搜索 广度优先搜索 4+ Easy
654 最大二叉树 [✓] 数组 3+ Medium
655 输出二叉树 深度优先搜索 广度优先搜索 1+ Medium
662 二叉树最大宽度 [✓] 深度优先搜索 广度优先搜索 1+ Medium
663 均匀树划分 🔒 深度优先搜索 二叉树 Medium
666 路径总和 IV 🔒 深度优先搜索 数组 2+ Medium
669 修剪二叉搜索树 深度优先搜索 二叉搜索树 1+ Medium
671 二叉树中第二小的节点 深度优先搜索 二叉树 Easy
687 最长同值路径 深度优先搜索 二叉树 Medium
700 二叉搜索树中的搜索 [✓] 二叉搜索树 二叉树 Easy
701 二叉搜索树中的插入操作 [✓] 二叉搜索树 二叉树 Medium
703 数据流中的第 K 大元素 [✓] 设计 二叉搜索树 3+ Easy
742 二叉树最近的叶节点 🔒 深度优先搜索 广度优先搜索 1+ Medium
776 拆分二叉搜索树 🔒 二叉搜索树 递归 1+ Medium
783 二叉搜索树节点最小距离 [✓] 深度优先搜索 广度优先搜索 2+ Easy
814 二叉树剪枝 深度优先搜索 二叉树 Medium
863 二叉树中所有距离为 K 的结点 深度优先搜索 广度优先搜索 2+ Medium
865 具有所有最深节点的最小子树 深度优先搜索 广度优先搜索 2+ Medium
872 叶子相似的树 深度优先搜索 二叉树 Easy
889 根据前序和后序遍历构造二叉树 [✓] 数组 哈希表 2+ Medium
894 所有可能的真二叉树 递归 记忆化搜索 2+ Medium
897 递增顺序搜索树 深度优先搜索 2+ Easy
919 完全二叉树插入器 广度优先搜索 设计 1+ Medium
938 二叉搜索树的范围和 深度优先搜索 二叉搜索树 1+ Easy
951 翻转等价二叉树 [✓] 深度优先搜索 二叉树 Medium
958 二叉树的完全性检验 [✓] 广度优先搜索 二叉树 Medium
965 单值二叉树 深度优先搜索 广度优先搜索 1+ Easy
968 监控二叉树 深度优先搜索 动态规划 1+ Hard
971 翻转二叉树以匹配先序遍历 深度优先搜索 二叉树 Medium
979 在二叉树中分配硬币 深度优先搜索 二叉树 Medium
987 二叉树的垂序遍历 深度优先搜索 广度优先搜索 3+ Hard
988 从叶结点开始的最小字符串 深度优先搜索 字符串 2+ Medium
993 二叉树的堂兄弟节点 深度优先搜索 广度优先搜索 1+ Easy
998 最大二叉树 II 二叉树 Medium
1008 前序遍历构造二叉搜索树 [✓] 二叉搜索树 3+ Medium
1022 从根到叶的二进制数之和 深度优先搜索 二叉树 Easy
1026 节点与其祖先之间的最大差值 深度优先搜索 二叉树 Medium
1028 从先序遍历还原二叉树 深度优先搜索 字符串 1+ Hard
1038 从二叉搜索树到更大和树 深度优先搜索 二叉搜索树 1+ Medium
1080 根到叶路径上的不足节点 深度优先搜索 二叉树 Medium
1104 二叉树寻路 数学 二叉树 Medium
1110 删点成林 深度优先搜索 数组 2+ Medium
1120 子树的最大平均值 🔒 深度优先搜索 二叉树 Medium
1123 最深叶节点的最近公共祖先 深度优先搜索 广度优先搜索 2+ Medium
1145 二叉树着色游戏 深度优先搜索 二叉树 Medium
1161 最大层内元素和 深度优先搜索 广度优先搜索 1+ Medium
1214 查找两棵二叉搜索树之和 🔒 深度优先搜索 4+ Medium
1261 在受污染的二叉树中查找元素 深度优先搜索 广度优先搜索 3+ Medium
1302 层数最深叶子节点的和 深度优先搜索 广度优先搜索 1+ Medium
1305 两棵二叉搜索树中的所有元素 深度优先搜索 二叉搜索树 2+ Medium
1315 祖父节点值为偶数的节点和 深度优先搜索 广度优先搜索 1+ Medium
1325 删除给定值的叶子节点 深度优先搜索 二叉树 Medium
1339 分裂二叉树的最大乘积 深度优先搜索 二叉树 Medium
1361 验证二叉树 深度优先搜索 广度优先搜索 3+ Medium
1367 二叉树中的链表 深度优先搜索 链表 1+ Medium
1372 二叉树中的最长交错路径 深度优先搜索 动态规划 1+ Medium
1373 二叉搜索子树的最大键值和 深度优先搜索 二叉搜索树 2+ Hard
1379 找出克隆二叉树中的相同节点 深度优先搜索 广度优先搜索 1+ Easy
1382 将二叉搜索树变平衡 贪心 深度优先搜索 3+ Medium
1430 判断给定的序列是否是二叉树从根到叶的路径 🔒 深度优先搜索 广度优先搜索 1+ Medium
1448 统计二叉树中好节点的数目 深度优先搜索 广度优先搜索 1+ Medium
1457 二叉树中的伪回文路径 位运算 深度优先搜索 2+ Medium
1469 寻找所有的独生节点 🔒 深度优先搜索 广度优先搜索 1+ Easy
1485 克隆含随机指针的二叉树 🔒 深度优先搜索 广度优先搜索 2+ Medium
1530 好叶子节点对的数量 深度优先搜索 二叉树 Medium
1569 将子数组重新排序得到同一个二叉搜索树的方案数 并查集 二叉搜索树 7+ Hard
1586 二叉搜索树迭代器 II 🔒 设计 3+ Medium
1597 根据中缀表达式构造二叉表达式树 🔒 字符串 1+ Hard
1602 找到二叉树中最近的右侧节点 🔒 广度优先搜索 二叉树 Medium
1609 奇偶树 广度优先搜索 二叉树 Medium
1612 检查两棵二叉表达式树是否等价 🔒 深度优先搜索 哈希表 2+ Medium
1628 设计带解析函数的表达式树 🔒 设计 3+ Medium
1644 二叉树的最近公共祖先 II 🔒 深度优先搜索 二叉树 Medium
1650 二叉树的最近公共祖先 III 🔒 哈希表 双指针 1+ Medium
1660 纠正二叉树 🔒 深度优先搜索 广度优先搜索 2+ Medium
1666 改变二叉树的根节点 🔒 深度优先搜索 二叉树 Medium
1676 二叉树的最近公共祖先 IV 🔒 深度优先搜索 哈希表 1+ Medium
1740 找到二叉树中的距离 🔒 深度优先搜索 广度优先搜索 2+ Medium
1902 给定二叉搜索树的插入顺序求深度 🔒 二叉搜索树 数组 2+ Medium
1932 合并多棵二叉搜索树 深度优先搜索 哈希表 2+ Hard
1973 值等于子节点值之和的节点数量 🔒 深度优先搜索 二叉树 Medium
2005 斐波那契树的移除子树游戏 🔒 数学 动态规划 2+ Hard
2049 统计最高分的节点数目 深度优先搜索 数组 1+ Medium
2096 从二叉树一个节点到另一个节点每一步的方向 深度优先搜索 字符串 1+ Medium
2196 根据描述创建二叉树 [✓] 数组 哈希表 1+ Medium
2236 判断根结点是否等于子结点之和 二叉树 Easy
2265 统计值等于子树平均值的节点数 深度优先搜索 二叉树 Medium
2313 二叉树中得到结果所需的最少翻转次数 🔒 深度优先搜索 动态规划 1+ Hard
2331 计算布尔二叉树的值 深度优先搜索 二叉树 Easy
2385 感染二叉树需要的总时间 深度优先搜索 广度优先搜索 2+ Medium
2415 反转二叉树的奇数层 深度优先搜索 广度优先搜索 1+ Medium
2445 值为 1 的节点数 🔒 深度优先搜索 广度优先搜索 1+ Medium
2458 移除子树后的二叉树高度 [✓] 深度优先搜索 广度优先搜索 2+ Hard
2471 逐层排序二叉树所需的最少操作数目 广度优先搜索 二叉树 Medium
2476 二叉搜索树最近节点查询 深度优先搜索 二叉搜索树 3+ Medium
2509 查询树中环的长度 数组 二叉树 Hard
2583 二叉树中的第 K 大层和 [✓] 广度优先搜索 二叉树 1+ Medium
2641 二叉树的堂兄弟节点 II [✓] 深度优先搜索 广度优先搜索 2+ Medium
2673 使二叉树所有路径值相等的最小代价 贪心 数组 2+ Medium
2689 从 Rope 树中提取第 K 个字符 🔒 深度优先搜索 二叉树 Easy
2764 数组是否表示某二叉树的前序遍历 🔒 深度优先搜索 1+ Medium
2773 特殊二叉树的高度 🔒 深度优先搜索 广度优先搜索 1+ Medium
2792 计算足够大的节点数 🔒 深度优先搜索 分治 1+ Hard
3157 找到具有最小和的树的层数 🔒 深度优先搜索 广度优先搜索 1+ Medium
3319 第 K 大的完美二叉子树的大小 [✓] 深度优先搜索 二叉树 1+ Medium
LCP 10 二叉树任务调度 深度优先搜索 动态规划 1+ Hard
LCP 26 导航装置 动态规划 二叉树 Hard
LCP 34 二叉树染色 动态规划 二叉树 Medium
LCP 44 开幕式焰火 深度优先搜索 广度优先搜索 2+ Easy
LCP 52 二叉搜索树染色 线段树 二叉搜索树 4+ Medium
LCP 60 力扣泡泡龙 动态规划 二叉树 Hard
LCP 64 二叉树灯饰 深度优先搜索 动态规划 1+ Medium
LCP 67 装饰树 深度优先搜索 广度优先搜索 1+ Medium
剑指 Offer 26 树的子结构 [✓] 深度优先搜索 二叉树 Medium
剑指 Offer 27 二叉树的镜像 [✓] 深度优先搜索 广度优先搜索 1+ Easy
剑指 Offer 28 对称的二叉树 [✓] 深度优先搜索 广度优先搜索 1+ Easy
剑指 Offer 32 从上到下打印二叉树 [✓] 广度优先搜索 二叉树 Medium
剑指 Offer 32-II 从上到下打印二叉树 II [✓] 广度优先搜索 二叉树 Easy
剑指 Offer 32-III 从上到下打印二叉树 III [✓] 广度优先搜索 二叉树 Medium
剑指 Offer 33 二叉搜索树的后序遍历序列 [✓] 二叉搜索树 4+ Medium
剑指 Offer 34 二叉树中和为某一值的路径 [✓] 深度优先搜索 回溯 1+ Medium
剑指 Offer 36 二叉搜索树与双向链表 [✓] 深度优先搜索 4+ Medium
剑指 Offer 37 序列化二叉树 [✓] 深度优先搜索 广度优先搜索 3+ Hard
剑指 Offer 54 二叉搜索树的第k大节点 [✓] 深度优先搜索 二叉搜索树 1+ Easy
剑指 Offer 55 二叉树的深度 [✓] 深度优先搜索 广度优先搜索 1+ Easy
剑指 Offer 55-II 平衡二叉树 [✓] 深度优先搜索 二叉树 Easy
剑指 Offer 68 二叉搜索树的最近公共祖先 [✓] 深度优先搜索 二叉搜索树 1+ Easy
剑指 Offer 68-II 二叉树的最近公共祖先 [✓] 深度优先搜索 二叉树 Easy
剑指 Offer 7 重建二叉树 [✓] 数组 哈希表 2+ Medium
剑指 Offer II 43 往完全二叉树添加节点 广度优先搜索 设计 1+ Medium
剑指 Offer II 44 二叉树每层的最大值 深度优先搜索 广度优先搜索 1+ Medium
剑指 Offer II 45 二叉树最底层最左边的值 深度优先搜索 广度优先搜索 1+ Medium
剑指 Offer II 46 二叉树的右侧视图 [✓] 深度优先搜索 广度优先搜索 1+ Medium
剑指 Offer II 47 二叉树剪枝 深度优先搜索 二叉树 Medium
剑指 Offer II 48 序列化与反序列化二叉树 [✓] 深度优先搜索 广度优先搜索 3+ Hard
剑指 Offer II 49 从根节点到叶节点的路径数字之和 [✓] 深度优先搜索 二叉树 Medium
剑指 Offer II 50 向下的路径节点之和 [✓] 深度优先搜索 二叉树 Medium
剑指 Offer II 51 节点之和最大的路径 [✓] 深度优先搜索 动态规划 1+ Hard
剑指 Offer II 52 展平二叉搜索树 深度优先搜索 2+ Easy
剑指 Offer II 53 二叉搜索树中的中序后继 深度优先搜索 二叉搜索树 1+ Medium
剑指 Offer II 54 所有大于等于节点的值之和 深度优先搜索 二叉搜索树 1+ Medium
剑指 Offer II 55 二叉搜索树迭代器 [✓] 设计 3+ Medium
剑指 Offer II 59 数据流的第 K 大数值 [✓] 设计 二叉搜索树 3+ Easy
面试题 04.02 最小高度树 二叉搜索树 数组 2+ Easy
面试题 04.03 特定深度节点链表 广度优先搜索 链表 1+ Medium
面试题 04.04 检查平衡性 深度优先搜索 二叉树 Easy
面试题 04.05 合法二叉搜索树 深度优先搜索 二叉搜索树 1+ Medium
面试题 04.06 后继者 深度优先搜索 二叉搜索树 1+ Medium
面试题 04.08 首个共同祖先 深度优先搜索 二叉树 Medium
面试题 04.09 二叉搜索树序列 二叉搜索树 回溯 1+ Hard
面试题 04.10 检查子树 深度优先搜索 二叉树 2+ Medium
面试题 04.12 求和路径 深度优先搜索 二叉树 Medium
面试题 17.12 BiNode 深度优先搜索 3+ Easy