题目
将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。
本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。
示例:
1 | 给定有序数组: [-10,-3,0,5,9], |
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.
Example:
1 | Given the sorted array: [-10,-3,0,5,9], |
解题方法
递归构造BST,每次取数组中心位置的节点作为子树的根,第一次写的代码在递归调用时需要防止引用参数丢失,所以调用前需要先对root进行实例化,第二次经过修改不需要注意这点,两段代码跑了1ms,超过100%的Java提交,代码如下:
1 | /** |
1 | /** |