递归法从前序与中序遍历序列构造二叉树

105. 从前序与中序遍历序列构造二叉树
难度中等
给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。
思路
需要明白的知识点有:
中序遍历中一个节点的左侧是它的左子树的所有节点,右侧是它的右子树的所有节点前序遍历中的第一个节点是当前节点,其左子树和右子树均在其右侧
我们可以根据前续遍历找到当前节点,然后找到当前根节点在中序数组中的位置,进而由根节点的位置及其子树的范围确定新的左子树与右子树的范围,然后进行不断递归,直到最后遍历完整个数组。

我们无法确定前续遍历中左子树与右子树的范围,但是可以从中序遍历中获得这个值
具体请看32与33行

package cn.edu.xjtu.carlWay.tree.preAndInConstructBinaryTree;

im

递归法从前序与中序遍历序列构造二叉树最先出现在Python成神之路

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

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