🌲 二叉树

树的递归、DFS/BFS、BST 性质利用,是面试中最高频的数据结构之一。

15 题  ·  简单 ×6  中等 ×8  困难 ×1

# 题目 难度
94 二叉树的中序遍历 简单
104 二叉树的最大深度 简单
226 翻转二叉树 简单
101 对称二叉树 简单
543 二叉树的直径 简单
108 将有序数组转换为二叉搜索树 简单
102 二叉树的层序遍历 中等
98 验证二叉搜索树 中等
230 二叉搜索树中第 K 小的元素 中等
199 二叉树的右视图 中等
114 二叉树展开为链表 中等
105 从前序与中序遍历序列构造二叉树 中等
437 路径总和 III 中等
236 二叉树的最近公共祖先 中等
124 二叉树中的最大路径和 困难

核心思路

  • 层序遍历:BFS,队列每次处理一整层(循环前记录队列大小)。
  • 验证 BST:中序遍历应严格递增;或递归传入 (min, max) 约束范围。
  • 路径总和 III:前缀和 + 哈希表(类似「和为 K 的子数组」的树上版本)。
  • 最近公共祖先:若 p、q 分别在左右子树则当前节点即 LCA;否则向包含两者的子树递归。
  • 构造二叉树:前序第一个是根,在中序中找根位置分割左右子树,递归建树(哈希表加速查找)。
  • 最大路径和:后序遍历,每个节点计算「经过该节点的最大贡献值」(可向上传递),维护全局最大。
  • 展开为链表:Morris 遍历思路:将左子树的最右节点接到右子树头,再把左子树移到右边,迭代处理。