1.将一个有序数组转换成二叉排序树
1.1 二叉排序树
- 二叉排序树是一棵二叉树,且具有以下性质:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
1.2 思路
- 数组中间的数是根节点,中间左边的是左子树,中间右边的是右子树。依照此规则递归,将一个升序的数组转换成二叉排序树。
1.3 代码
- 将升序的有序数组转换成BST:
fun createBSTForAscendSortedArray(array: IntArray, start: Int, end: Int): TreeNode? { // 递归终止条件 if (array.isEmpty() || start > end) { return null } // 根节点是给定数组范围中间对应的那个节点 val mid = (start + end) / 2 val root = TreeNode(