LeetCode654. 最大二叉树
树的问题主要通过递归解决,确认每个节点需要做的事情
1.先在数组中找到最大值作为根节点
2.最大值左边作为root.left,右边作为root.right
3.递归调用左右数组构造二叉树
var constructMaximumBinaryTree = function(nums) { return build(nums,0,nums.length-1); function build(nums,low,height) { if(low>height) return null; //递归终止base let max = -Intinify; let index = -1; for(let i = low;i<=height;i++){ if(nums[i]>max) { max = nums[i]; index = i; } } let newNode = new TreeNode(max); newNode.left = build(nums,low,index-1); newNode.right = build(nums,index+1,height); } }
浙公网安备 33010602011771号