重建二叉树
问题简述
给出二叉树前序遍历和中序遍历的结果,重建该二叉树并返回其根节点。详细描述
输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。
假设输入的前序遍历和中序遍历的结果中都不含重复的数字。
示例 1:
Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]
Output: [3,9,20,null,null,15,7]
示例 2:
Input: preorder = [-1], inorder = [-1]
Output: [-1]
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/zhong-jian-er-cha-shu-lcof
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。思路
前序遍历,节点按照
[ 根节点 | 左子树 | 右子树 ]的顺序输出。中序遍历,节点按照
[ 左子树 | 根节点 | 右子树 ]的顺序输出。可知:
前序遍历的首元素为根节点 node 的值。
在中序遍历的结果中搜索根节点的索引 ,可将中序遍历划分为
[ 左子树 | 根节点 | 右子树 ]。根据中序遍历中的左(右)子树的节点数量,可将前序遍历划分为
[ 根节点 | 左子树 | 右子树 ]。

Last updated