刚看到这题我是不想做的,一想到要递归,还是用树的结构递归,那性能我不敢想,可是转换数据类型也挺麻烦,就不想想,没办法,就先试了试这个最直观办法:
/*
执行用时 :136 ms, 在所有 JavaScript 提交中击败了58.20%的用户
内存消耗 :126.9 MB, 在所有 JavaScript 提交中击败了57.14%的用户
*/
var buildTree = function(preorder, inorder) {
if(inorder.length===0) return null;
let root = preorder[0];
let tree = new TreeNode(root);
let root_index = inorder.indexOf(root);
// 这两项是中根遍历的结果
let in_left = inorder.slice(0,root_index);
let in_right = inorder.slice(root_index+1);
// 这两项是先根遍历的结果