常见面试/笔试题
记录常见的基础面试/笔试题,以便日后复习查阅。
二叉树遍历
从二叉树的递归定义可知,一棵非空的二叉树由根结点及左、右子树这三个基本部分组成。因此,在任一给定结点上,可以按某种次序执行三个操作:
- 访问结点本身(N)
- 遍历该结点的左子树(L)
- 遍历该结点的右子树(R)
以上三种操作有六种执行次序:NLR、LNR、LRN、NRL、RNL、RLN。由于前三种次序与后三种次序对称,故只讨论先左后右的前三种次序。根据访问结点操作发生位置命名如下:
- 前序遍历(NLR):访问根结点的操作发生在遍历其左右子树之前
- 中序遍历(LNR):访问根结点的操作发生在遍历其左右子树之中
- 后序遍历(LRN):访问根结点的操作发生在遍历其左右子树之后