Leetcode / 108. Convert Sorted Array to Binary Search Tree
Pick a programming language:
Here is the source code for the solution to this problem.
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
private TreeNode buildBSTFromSortedArray(int[] nums, int lower, int upper) {
if (lower > upper) {
return null;
}
// Remove Math.ceil to get the other variation
int mid = (int) Math.ceil((lower + upper) / 2.0);
TreeNode newTreeNode = new TreeNode(nums[mid]);
newTreeNode.left = buildBSTFromSortedArray(nums, lower, mid - 1);
newTreeNode.right = buildBSTFromSortedArray(nums, mid + 1, upper);
return newTreeNode;
}
public TreeNode sortedArrayToBST(int[] nums) {
return buildBSTFromSortedArray(nums, 0, nums.length - 1);
}
}
Gostou da aula? 😆👍
Apoie nosso trabalho com uma doação: