Open ZhengXingchi opened 4 years ago
function rebuild(pre, vim) {
if (pre.length === 0 || vim.length === 0) {
return null
}
let gen = pre[0]
let index = vim.indexOf(gen)
let left = vim.slice(0, index)
let right = vim.slice(index + 1)
return {
value: gen,
left: rebuild(pre.slice(1, index + 1), left),
right: rebuild(pre.slice(index + 1), right)
}
}
console.log(rebuild([1, 2, 4, 7, 3, 5, 6, 8], [4, 7, 2, 1, 5, 3, 8, 6]))
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回