题目:
题解:
思路:使用递归,看到这个题的时候,我第一反应就是给出先序和中序遍历序列,构造二叉树,嗯啊,就是使用这个思路走的。虽然复杂度很高,但是还是很快跑出来了。
代码:
var constructMaximumBinaryTree = function (nums) {
if (nums.length === 0) {
return null
}
let root = Math.max(...nums);
let index = nums.indexOf(root)
let rootTree = new TreeNode(root)
let left = nums.slice(0, index)
let right = nums.slice(index + 1)
rootTree.left = constructMaximumBinaryTree(left)
rootTree.right = constructMaximumBinaryTree(right)
return rootTree
};
注:在leetcode平台上Math.max
要写成_.max
(ps:第二周,第二天)