美文网首页
108. Convert Sorted Array to Bin

108. Convert Sorted Array to Bin

作者: exialym | 来源:发表于2016-09-23 14:56 被阅读6次

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

使用递归,每次都取中点,作为当前部分的根节点,然后左边的部分作为其左子树,右边的部分作为其右子树
下面的两个方法一样的,一个使用了帮助函数一个没有。

var sortedArrayToBST = function(nums) {
    var help = function(left,right){
        if (left>right)
            return null;
        var mid = left+parseInt((right-left)/2);
        var node = new TreeNode(nums[mid]);
        var leftn = help(left,mid-1);
        var rightn = help(mid+1,right);
        if (leftn) 
            node.left = leftn;
        if (rightn)
            node.right = rightn;
        return node;
    };
    return help(0,nums.length-1);
};
var sortedArrayToBST = function(nums) {
    var len = nums.length;
    if (len!==0) {
        var mid = parseInt(len/2);
        var node = new TreeNode(nums[mid]);
        var left = sortedArrayToBST(nums.slice(0,mid));
        var right = sortedArrayToBST(nums.slice(mid+1,len));
        if (left) 
            node.left = left;
        if (right)
            node.right = right;
        return node;
    }
    return null;

相关文章

网友评论

      本文标题:108. Convert Sorted Array to Bin

      本文链接:https://www.haomeiwen.com/subject/hamtyttx.html