这题重点练习二叉树的构建、递归遍历和层序遍历。面试里常见的问题不是“会不会背遍历顺序”,而是能不能把边界和递归区间处理清楚。
- 层序数组如何还原成二叉树。
- 前序 + 中序为什么能唯一确定一棵树。
- 前序、中序、后序三种递归遍历的访问时机。
- 层序遍历为什么需要队列。
BinaryTree(level):用层序数组建树,std::nullopt表示空节点。BinaryTree(preorder, inorder):用前序和中序数组建树。preorder():前序遍历。inorder():中序遍历。postorder():后序遍历。level_order():层序遍历。