Leetcode题解之 —— 将有序数组转换为二叉搜索树
思路
二分法
- 递归
- 中间的值为当前节点
- 左边数组为左子树
- 右边数组为右子树
nums
为空, length
为一, 边界判断, 终止递归
题解
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
var sortedArrayToBST = function(nums) { if (!nums.length) { return null; } else if (nums.length === 1) { return new TreeNode(nums[0]); } const [middle] = [~~((nums.length) / 2)]; const node = new TreeNode(nums[middle]);
node.left = sortedArrayToBST(nums.slice(0, middle)); node.right = sortedArrayToBST(nums.slice(middle + 1));
return node; };
|