首先先说下二叉树的结构吧,对于如下图1所示的结构,A为根节点,B为左子树,C 为右子树。
图1
现在开始切入正题,先解释下二叉树的前序遍历,中序遍历,和后序遍历吧。
1. 前序遍历:先遍历根结点,然后遍历左子树,最后遍历右子树。
2.中序遍历:先遍历左子树,然后遍历根结点,最后遍历右子树。
3.后序遍历:先遍历左子树,然后遍历右子树,最后遍历根节点。
对于如下图2所示,
图2
图2前序遍历可以先这样解释,先对整个图进行观察如下所示,A为根节点,BDEG为左子树,CF为右子树,我们记得前序遍历是先遍历根节点A,然后再遍历左边的一整块,而后再遍历右边的一整块,左边一整块遍历根据前序遍历的原则,先遍历B,再左子树D,再D的左子树,这里并没有,所以遍历D的右子树G,这是D及其子节点都遍历完了,在遍历B的右子树E,这样的话A节点的左子树(也就是BDEG这一整块)遍历完事,目前得到的结果为ABDGE,而后遍历A的右子树,先遍历C,再遍历C的左子树(这里没有),再遍历右子树F,所以A的右子树遍历得到的结果为CF,这样就得到了图2整个前序遍历的结果ABDGECF:
图2中序遍历为DGBEACF。
图2后序遍历为GDEBFCA。
这里有个京东的测试题。
这题的答案为C,结果如下: