1. 原文:
【教程】已知二叉树的先序序列和中序序列构造二叉树_立志Java工程师的博客-CSDN博客_已知先序序列和中序序列怎么画二叉树
2. 例:
已知某二叉树的先序序列为ABDGCEF,中序序列为DGBAECF
3. 梗概:
- 采用嵌套的思想
- 从外层到里层确定左右子树,
- 并且每一层的左右子树都要标出来, 要不容易乱
4. 步骤:
- 根据先序遍历确定整个树的根
- A是该二叉树根节点
- 根据中序遍历确定最外层树的左右子树
- DGB在A的左边,为第二层左子树
- ECF在A右边, 为第二层右子树
- 根据先序遍历确定第二层左子树的根
- DGB左子树在先序遍历的顺序为BDG, 所以根为B
- 根据中序遍历确定第二层左子树的左右子树
- DG在B的左边, 为第三层左子树
- B右边什么也没有, 没有第三层右子树
- 根据先序遍历确定第三层左子树的根
- …D为第三层左子树的根
- 根据中序遍历确定第三层左子树的左右子树
- G在B的右边, 为第四层左子树, 同时也是叶结点
- B右边什么也没有, 没有第四层右子树
- 继续重复以上步骤, 直到每个结点位置都确定