算法实现之最小高度树
题目地址:
最小高度树
题目描述
给定一个有序整数数组,元素各不相同且按升序排列,编写一个算法,创建一棵高度最小的二叉搜索树。
示例

解题思路:
创建一棵高度最小的二叉搜索树,也就是首先是一个二叉搜索树,
- 二叉搜索树的特点是节点左边子树的值比节点值小,右边子树的值比节点的值大
- 其实要是一个高度最小的二叉树,也就是说深度最小,
- 本题又是一个升序的有序整数数组,所以要从中间节点开始遍历
- 然后依次遍历左右子树的中间节点 得到最终结果
代码实现
/**
 * @param {number[]} nums
 * @return {TreeNode}
 */
var sortedArrayToBST = function(nums) {
    if(!nums.length) return null
    let midIndex = nums.length >> 1
    let tree = new TreeNode(nums[midIndex])
    // 左闭右开
    tree.left = sortedArrayToBST(nums.slice(0, midIndex))
    tree.right = sortedArrayToBST(nums.slice(midIndex + 1))
    return tree
};

 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号