const { TreeNode } = require('../../utils')

function createMinimalBST(arr) {
	const recurse = (start, end) => {
		if (end < start) return null

		const mid = Math.floor((end + start) / 2)

		const node = new TreeNode(arr[mid])
		node.left = recurse(start, mid - 1)
		node.right = recurse(mid + 1, end)

		return node
	}
	return recurse(0, arr.length - 1)
}

/*
n = size of array
Time Complexity - O(n)
Space complexity - O(n)
*/
// Tests

const arr = [0, 1, 2, 3, 4, 5]
console.log(createMinimalBST(arr))