Algorithm topic

二叉树:模式识别与解题模板

本专题包含 14 道题。先辨认输入结构和目标,再选择能够持续保持关键不变量的算法,而不是只记住某一道题的代码。

高频模式

14 道题

观察题目是否反复出现“”对应的数据访问、状态压缩或边界推进特征。

二叉树14 道题

观察题目是否反复出现“二叉树”对应的数据访问、状态压缩或边界推进特征。

深度优先搜索10 道题

观察题目是否反复出现“深度优先搜索”对应的数据访问、状态压缩或边界推进特征。

广度优先搜索6 道题

观察题目是否反复出现“广度优先搜索”对应的数据访问、状态压缩或边界推进特征。

数组2 道题

观察题目是否反复出现“数组”对应的数据访问、状态压缩或边界推进特征。

哈希表2 道题

观察题目是否反复出现“哈希表”对应的数据访问、状态压缩或边界推进特征。

核心模板

  1. 先写清输入规模、目标值和允许修改的数据。
  2. 定义每一步开始和结束时必须成立的不变量。
  3. 把循环、递归、队列或状态转移拆成可验证事件。
  4. 用最小输入、重复值和退化结构验证边界。

常见错误

  • 只根据样例选择算法,没有核对复杂度上限。
  • 更新多个指针或状态时破坏旧值依赖。
  • 忽略空输入、重复值、断开结构或极端顺序。
  • 代码结果正确,但解释没有说明为什么不会漏解或重复。

代表题

#100 · EASY

相同的树

判断两棵二叉树结构和值是否完全相同。

深度优先搜索广度优先搜索二叉树
#226 · EASY

翻转二叉树

交换每个节点的左右子树。

深度优先搜索广度优先搜索二叉树
#101 · EASY

对称二叉树

判断二叉树是否关于中心轴镜像对称。

深度优先搜索广度优先搜索二叉树
#114 · MEDIUM

二叉树展开为链表

按前序遍历顺序原地展开为右指针链表。

深度优先搜索链表二叉树
查看本分类全部 14 道题