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

Leetcode108:将有序数组转换为二叉搜索树_第1张图片

	//利用二分法
	public TreeNode sortedArrayToBST(int[] nums) {

		if (nums == null || nums.length == 0) {
			return null;
		}
		return getBST(nums, 0, nums.length - 1);
	}

	private TreeNode getBST(int[] nums, int left, int right) {

		if (left > right || left < 0 || right >= nums.length) {
			return null;
		}
		if (left == right) {
			return new TreeNode(nums[left]);
		}
		int mid = left + (right - left) / 2;
		TreeNode node = new TreeNode(nums[mid]);
		node.left = getBST(nums, left, mid - 1);
		node.right = getBST(nums, mid + 1, right);
		return node;
	}

你可能感兴趣的:(leetcode,算法)