-
题目
java给你一个整数数组 nums ,其中元素已经按 升序 排列, 请你将其转换为一棵平衡二叉搜索树。 -
示例
java示例 1: 输入:nums = [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案: 示例 2: 输入:nums = [1,3] 输出:[3,1] 解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。 -
解题思路
- 利用二分查找的思想,每找到一个元素,就将其构造成一个节点。并且因为数组本身已经排序,直接构造即可。
-
代码(Java)
javaclass Solution { public TreeNode sortedArrayToBST(int[] nums) { if (nums == null) { return null; } if (nums.length == 1) { return new TreeNode(nums[0]); } return sortedArrayToBST(nums, 0, nums.length - 1, (nums.length - 1) / 2); } public TreeNode sortedArrayToBST(int[] nums, int left, int right, int mid) { if (left > right) { return null; } TreeNode root = new TreeNode(nums[mid]); root.left = sortedArrayToBST(nums, left, mid - 1, (left + mid - 1) / 2); root.right = sortedArrayToBST(nums, mid + 1, right, (mid + 1 + right) / 2); return root; } }
LeetCode108 将有序数组转换为二叉搜索树
biglxl2024-03-19 20:46
相关推荐
朝朝辞暮i4 小时前
C++ 第 21 课:struct —— 把一组相关数据打包在一起青梅橘子皮4 小时前
Blue---二分算法(二分查找与二分答案)长河4 小时前
Java的GC(垃圾回收)中,标记无用对象的核心方法是可达性分析算法月光船幽幽4 小时前
加性偏移外推提升参数识别可靠性Ivanqhz5 小时前
层归一化、残差、前馈网络与激活函数简述不会就选b6 小时前
算法日常・每日刷题--<动态规划>3-dzk-7 小时前
【堆】LC 347.前 K 个高频元素H.莓飛7 小时前
【数据结构】栈_OJ题Zootopia6267 小时前
多架 eVTOL集群排班调度方案思考和裕7 小时前
年度框架直供 vs 零散按需采购:定制纸箱采购成本、交付与服务核心区别全对比