二叉树:
- 前序遍历
根节点 —>左子树—>右子树
顺序:根节点 —>前序遍历左子树(根->左->右)—>前序遍历右子树(根->左->右)
遍历结果:
A-B-C-D-E-F-G-H-I
- 中序遍历
左子树—>根节点—>右子树
顺序:中序遍历左子树(左->根->右)—>根节点—>中序遍历右子树(左->根->右)
遍历结果:
D-C-B-E-F-A-H-G-I
- 后序遍历
左子树—>右子树—>根节点
顺序:后序遍历左子树(左->右->根)—>后序遍历右子树(左->右->根)—>根节点
遍历结果:
D-C-F-E-B-H-I-G-A
总结
先序、中序、后序中的这个”顺序“是对于根节点而言的,例如中序就是中间访问根节点,后序就是最后访问根节点。
只有前序和后序遍历无法还原二叉树:
前序和后序都能确定根节点,但是无法确认左子树和右子树。
前序+中序 or 后序+中序 可以还原二叉树:中序遍历是用来区分左右子树的。根据前序或后序得到的根节点,在中序遍历中,根节点左侧的是左子树,右侧的是右子树。由此,即可还原二叉树。