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);
 }  

}    

 

posted @ 2021-03-27 14:21  JMH0113  阅读(37)  评论(0)    收藏  举报