码迷,mamicode.com
首页 > 其他好文 > 详细

【树】Convert Sorted Array to Binary Search Tree

时间:2016-02-05 18:41:10      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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

 

【树】Convert Sorted Array to Binary Search Tree

标签:

原文地址:http://www.cnblogs.com/shytong/p/5183078.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!