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

解题思路:
创建一棵高度最小的二叉搜索树,也就是首先是一个二叉搜索树,
- 二叉搜索树的特点是节点左边子树的值比节点值小,右边子树的值比节点的值大
- 其实要是一个高度最小的二叉树,也就是说深度最小,
- 本题又是一个升序的有序整数数组,所以要从中间节点开始遍历
- 然后依次遍历左右子树的中间节点 得到最终结果
代码实现
/**
* @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号