目录
题目描述:
根据二叉树的前序遍历与中序遍历恢复二叉树
给两个数组,一个为preorder,为二又树的前序遍历结果,另一个为inorder,为又树的中序遍历结果,根据该二叉树的前序与中序遍历结果,恢复其二叉树结构,给定的数组中保证可以建立合法的二叉树,且二叉树的每个节点的值唯
如前序遍历数组preorder: [1,2,3,4,5,6,7],中序遍历数组inorder: [3,2,4,1,6,5,7] 则可以建立如下二又树:
分析:
其实就是通过前序结果和中序结果推导构建二叉树,前序确定根节点,中序确定顺序,确定节点的相对位置,然后使用递归的方式来构建树即可。
代码实现:
#include<iostream>
#include <vector>
using namespace std;
struct BinaryTreeNode
{
int val;
BinaryTreeNode* left;
BinaryTreeNode* right;
BinaryTreeNode() {
val = -1;