PyCraft
常见算法

二叉树

前中后序遍历、递归与迭代,LeetCode 树题基础

二叉树

LeetCode 树题大多基于二叉树的遍历递归定义。先掌握前/中/后序和层序,再练递归写法和常见题型。

节点定义

树节点通常带 valleftright;题目会给这种结构或数组(按层序存)。

加载代码编辑器中…

前序、中序、后序(递归)

前序:根 → 左 → 右;中序:左 → 根 → 右;后序:左 → 右 → 根。递归写法最直观。

加载代码编辑器中…

层序遍历(BFS)

用队列,每次处理一层,LeetCode 很多「按层」的题都用这个。

加载代码编辑器中…

树高与判断平衡

树高递归:height = 1 + max(left_h, right_h);平衡即左右高差 ≤ 1 且左右子树都平衡。

加载代码编辑器中…

小结

  • 遍历:前/中/后序用递归或栈,层序用队列。
  • 递归:先想「当前节点做什么」「左右子树返回什么」再写边界 if not root
  • 很多题是「遍历 + 在遍历过程中记录/判断」(如最大深度、路径和、镜像等)。