二叉树重构

首先知道一个二叉树的先序遍历和后续遍历让你求这个二叉树。直接看例子。

preorder traver{1,2,4,7,3,5,6,8}     inorder traver {4,7,2,1,5,3,8,6}

求它的后序遍历。

首先 1肯定是它的根节点,然后我们在 中序遍历中找到1这样它的左边就是他的左子树,右边就是它的右子树,所以他的左子树含有 472三个元素然后我们单独看左子树,先序遍历接着是2 说明2是他左子树的根节点尔4,7在2的左边说明它的左子树含有4,7两个元素

接着我们继续看他的4,7。在先序遍历中我们可以看到4是它的左子树的根节点,然后在中序遍历中可以看到7在4的右边说明7是4的右子树。

接着看它的右子树,1, 2, 4, 7都分析完了接着先序遍历的就是3说明3是它的右子树的根节点,然后3在中序遍历的对应位置上左边是 5右边是8, 6说明 5是3的左子树6, 8 是3的右子树。

最后我们再来看一下8, 6,先序遍历里6是根节点,8是6的左子树然后我们就建立了这个二叉树。

然后就是后序遍历了 后序遍历就是先遍历左子树然后遍历右子树最后是根节点。

所以 顺序是 7,4,2,5,8,6,3,1

猜你喜欢

转载自www.cnblogs.com/python-zkp/p/10639803.html