/*
* @lc app=leetcode.cn id=105 lang=javascript
*
* [105] 从前序与中序遍历序列构造二叉树
*/
// @lc code=start
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {number[]} preorder
* @param {number[]} inorder
* @return {TreeNode}
*/
var buildTree = function(preorder, inorder) {
if(preorder.length==0 || inorder.length==0)
return null;
let root = preorder.shift();
let pos = inorder.indexOf(root);
let node = new TreeNode(root);
node.left = buildTree(preorder.slice(0,pos),inorder.slice(0,pos))
node.right=buildTree(preorder.slice(pos),inorder.slice(pos+1))
return node;
};
// @lc code=end