106. 从中序与后序遍历序列构造二叉树

根据一棵树的中序遍历与后序遍历构造二叉树。
注意: 你可以假设树中没有重复的元素。
例如,给出
中序遍历 inorder = [9,3,15,20,7]
后序遍历 postorder = [9,15,7,20,3]

返回如下的二叉树:
3
/ /
9 20
/ /
15 7

题解:算法(递归)

递归建立整棵二叉树:先递归创建左右子树,然后创建根节点,并让指针指向两棵子树。
具体步骤如下:
先利用后序遍历找根节点:后序遍历的最后一个数,就是根节点的值;在中序遍历中找到根节点的位置 k,则 k左边是左子树的中序遍历,右边是右子树的中序遍历;假设左子树的中序遍历的长度是 l,则在后序遍历中,前 l个数就是左子树的后序遍历,接下来的数除了最后一个,就是右子树的后序遍历;有了左右子树的后序遍历和中序遍历,我们可以先递归创建出左右子树,然后再创建根节点;

106. 从中序与后序遍历序列构造二叉树最先出现在Python成神之路

版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/5221.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>