zoukankan      html  css  js  c++  java
  • 【树】Convert Sorted Array to Binary Search Tree

    题目:

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

    思路:

    找到数组的中间数据作为根节点,小于中间数据的数组来构造作为左子树,大于中间数据的数组来构造右子树。

    /**
     * Definition for a binary tree node.
     * function TreeNode(val) {
     *     this.val = val;
     *     this.left = this.right = null;
     * }
     */
    /**
     * @param {number[]} nums
     * @return {TreeNode}
     */
    var sortedArrayToBST = function(nums) {
        var len=nums.length;
        if(len==0){
            return null;
        }
        return BuildTree(nums,0,len-1);
    };
    
    function BuildTree(nums,s,e){
        if(s>e){
            return null;
        }
        if(s==e){
            return new TreeNode(nums[s]);
        }
        var middle=(s+e)/2;
        var rootval=nums[middle];
        var root=new TreeNode(rootval);
        root.left=BuildTree(nums,s,middle-1);
        root.right=BuildTree(nums,middle+1,e);
        return root;
    }
  • 相关阅读:
    清单
    1
    s
    模块系统的演进
    改radio样式
    前端css库
    疑惑
    收藏
    事件
    社保档案
  • 原文地址:https://www.cnblogs.com/shytong/p/5183078.html
Copyright © 2011-2022 走看看