108 Convert Sorted Array to Binary Search Tree
108. Convert Sorted Array to Binary Search Tree
1. Question
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
2. Implementation
(1) Recursion
class Solution {
public TreeNode sortedArrayToBST(int[] nums) {
if (nums == null || nums.length == 0) {
return null;
}
return generateBST(nums, 0, nums.length - 1);
}
public TreeNode generateBST(int[] nums, int start, int end) {
if (start > end) {
return null;
}
int mid = start + (end - start) / 2;
TreeNode curNode = new TreeNode(nums[mid]);
curNode.left = generateBST(nums, start, mid - 1);
curNode.right = generateBST(nums, mid + 1, end);
return curNode;
}
}(2) Iterative
3. Time & Space Complexity
Recursion: 时间复杂度O(n), 空间复杂度: O(logn)
Iteration: 时间复杂度O(n), 空间复杂度: O(n)
Last updated
Was this helpful?