Skip to content

易错点总表

线性表

  • 把“头结点”和“首元结点”混为一谈。
  • 删除单链表结点时忘记保留前驱指针。
  • 快慢指针题里,快指针先走几步常写错。
  • 循环链表遍历终止条件写成 None,导致死循环。

栈与队列

  • 循环队列判满与判空条件混淆。
  • 共享栈题只会说思想,不会画数组示意图。
  • 表达式求值时操作数出栈顺序写反。

  • 只会背 KMP 结论,不会手推 next
  • 失配时误让主串指针回退。
  • nextnextval 的定义混淆。

树与二叉树

  • 满二叉树、完全二叉树概念混淆。
  • 路径长度按结点数算,实际上通常按边数算。
  • WPL 把非叶结点也计入。
  • BST 判断只比较父子,不维护整体上下界。
  • 线索二叉树中分不清孩子指针和线索指针。

  • 邻接矩阵行列和入度/出度关系写反。
  • 认为 DFS 一定使用栈、BFS 一定使用队列,却解释不出访问顺序。
  • Dijkstra 被错误用于含负权边图。
  • 拓扑排序只会背结论,不会说入度更新过程。
  • 欧拉图判定时只看奇度顶点数,不看连通性。

查找

  • 折半查找用于链表。
  • AVL 调整分不清 LL、RR、LR、RL。
  • 散列表平均查找长度只背公式,不知道适用条件。

排序

  • 稳定性记混:选择、快速、堆、希尔都不稳定。
  • 快排最好/最坏情况记错。
  • 归并排序虽然稳定,但不是原地排序。
  • 基数排序不基于关键字比较。

大题书写

  • 只有代码,没有“算法思想 + 步骤 + 复杂度”。
  • 复杂度写成最终答案,却不给推导依据。
  • 变量命名混乱,评卷老师很难看懂。
  • 边界条件完全不写,导致步骤分丢失。

考场自检清单

  • 我有没有先定义输入和输出?
  • 我有没有说明核心数据结构?
  • 我有没有说明为什么正确?
  • 我有没有写时间复杂度和空间复杂度?
  • 我有没有检查空表、空树、空图、单结点、重复元素、越界下标?
最近更新

基于 MIT 许可发布