一:前序遍历
对于当前节点,先输出该节点,然后输出它的左孩子,最后输出它的右孩子。
即根结点 ---> 左子树 ---> 右子树。以上图为例,递归的过程如下:
-
首先输出根节点1。
-
输出左儿子2。
-
因为2没有左儿子,所以输出下一个,即输出右儿子5。
-
因为5没有左儿子,所以输出下一个,即输出右儿子8。
-
至此根的左儿子都输出完毕,开始输出它即1的右儿子,右儿子第一个为3。
-
输出3的左儿子6。
-
输出3的右儿子7。
-
至此全部输出完毕,结束。
所以输出的结果前序遍历结果是:1 2 5 8 3 6 7
二:中序遍历
首先遍历左子树,然后访问根结点,最后遍历右子树。若二叉树为空则结束返回。
即左子树---> 根结点 ---> 右子树。以上图为例,对左右子树分别进行左儿子-->自己-->右儿子输出,递归的过程如下:
-
首先输出左儿子,因为2没有左儿子,所以输出自己2。
-
准备输出2的右儿