# 将有序数组转换为二叉搜索树

# 思路:

二叉搜索树的中序遍历是升序的,可以利用在这个特点。

public static TreeNode sortedArrayToBinarySearchTree(int[] nums) {

        return bfs(0, nums.length - 1, nums);
    }

    public static TreeNode bfs(int left, int right, int[] nums) {
        if (left > right) {
            return null;
        }
        int mid = (left + right) / 2;
        TreeNode node = new TreeNode(nums[mid]);
        node.left = bfs(left, mid - 1, nums);
        node.right = bfs(mid + 1, right, nums);
        return node;
    }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15