Files
Learn-Algorithms/9 Algorithms Job Interview/7.1 二叉树-遍历.md
T
2021-09-13 14:43:50 +08:00

1.7 KiB

二叉树-遍历

快速排序就是个二叉树的前序遍历,归并排序就是个二叉树的后序遍历

2种方法实现二叉树的前序遍历。

递归和非递归

按层打印二叉树

输入一颗二元树,从上往下按层打印树的每个结点,同一层中按照从左往右的顺序打印。
例如输入

   8
  /\
 6  10
/ \ /\
5 7 9 11

输出8 6 10 5 7 9 11

二元树的深度

题目:输入一棵二元树的根结点,求该树的深度.从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 例如:输入二元树:


                                     10
                                  /     \
                                 6        14
                              /         /   \
                             4         12     16

输出该树的深度3。

分析:这道题本质上还是考查二元树的遍历。对于一颗完全二叉树,要求给所有节点加上一个pNext指针,指向同一层的相邻节点;如果当前节点已经是该层的最后一个节点,则将pNext指针指向NULL;给出程序实现,并分析时间复杂度和空间复杂度。

判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。 如果是返回true,否则返回false。 例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:

    8
  /  \
  6   10
  /\  / \
  5 7 9 11

因此返回true。如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。