问题描述
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果都不含重复的数字。例如输入前序遍历{1,2,4,7,3,5,6,8}和中序遍历{4,7,2,1,5,3,8,6},则重建二叉树并返回
思路分析
由前序遍历很容易知道根结点是1,然后根据中序遍历知道左子树包含节点是4、7、2,右子树结点是5、3、8、6;又由前序遍历为2,4,7知道2是这三个节点的根结点,又中序为4,7,2知道4是2的左孩子,7是4的右孩子,右子树同理可判断
码上有戏
|
|
最后拿到根结点然后输出后续遍历如下
7 4 2 5 8 6 3 1