leetcode-将有序数组转换为二叉搜索树(JavaScript)
2018-09-13 18:36
489 查看
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
给定有序数组: [-10,-3,0,5,9], 一个可能的答案是:[0,-3,9,-10,null,5],它可以表示下面这个高度平衡二叉搜索树: 0 / \ -3 9 / / -10 5
思路:
每次将中间点作为根节点,将数组左右两边的部分分别递归调用,作为根节点的左右子树。这样可以保证左右子树的高度差的绝对值不超过1.
[code]/** * 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) { if (nums.length === 0) { return null; } if (nums.length === 1) { return new TreeNode(nums[0]) } let rootIndex = parseInt(nums.length / 2); let root = new TreeNode(nums[rootIndex]); root.left = sortedArrayToBST(nums.slice(0, rootIndex)); root.right = sortedArrayToBST(nums.slice(rootIndex+1)) return root };
阅读更多
相关文章推荐
- Leetcode 108. 将有序数组转换为二叉搜索树
- LeetCode - 108. 将有序数组转换为二叉搜索树
- leetcode- 将有序数组转换为二叉搜索树(java)
- Leetcode Convert Sorted Array to Binary Search Tree 有序数组转换成二叉搜索树BST
- LeetCode 108. 将有序数组转换为二叉搜索树
- [LeetCode] 108. Convert Sorted Array to Binary Search Tree 把有序数组转成二叉搜索树
- Javascript实现从小到大的数组转换成二叉搜索树
- [leetcode]Convert Sorted Array to Binary Search Tree (有序数组转化为二叉搜索树 C语言)
- Javascript实现从小到大的数组转换成二叉搜索树
- Leetcode Convert Sorted List to Binary Search Tree 把有序链表转换成二叉搜索树
- LeetCode | Convert Sorted Array to Binary Search Tree(有序数组转换成平衡二叉树搜索树)
- leetcode 将已排序的 数组/链表 转换为二叉搜索树(BST),Python实现
- LeetCode 108. Convert Sorted Array to Binary Search Tree (有序数组转化为二叉搜索树)
- Convert Sorted Array to Binary Search Tree 把一个有序数组转换成BST @LeetCode
- [LeetCode]Convert Sorted Array to Binary Search Tree 将有序数组转换成BST
- [LeetCode] Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树
- LeetCode 108. Convert Sorted Array to Binary Search Tree(数组转换为二叉搜索树)