Practice Problem

Convert Sorted Array to Binary Search Tree

Difficulty: Easy

Given a sorted array, convert it into a height-balanced binary search tree using divide and conquer.

Convert Sorted Array to Binary Search Tree

Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.

A height-balanced binary tree is a binary tree in which the depth of the two subtrees of every node never differs by more than one.

Examples

Example 1:

Input: nums = [-10, -3, 0, 5, 9]
Output: [0, -3, 9, -10, null, 5]

       0
      / \
    -3   9
    /   /
  -10  5

Explanation: [0, -10, 5, null, -3, null, 9] is also accepted.

Example 2:

Input: nums = [1, 3]
Output: [3, 1] or [1, null, 3]

    3      1
   /        \
  1          3

Example 3:

Input: nums = [1]
Output: [1]

Constraints

  • 1 <= nums.length <= 10^4
  • -10^4 <= nums[i] <= 10^4
  • nums is sorted in strictly increasing order.

Expected Complexity

  • Time: O(n)
  • Space: O(log n) recursion stack, O(n) for the output tree
EASY
Binary Tree
Binary Search Tree (BST)
Balanced BST
Divide and Conquer
Recursion
Beginner

0 views

Solution

Hints

Hint 1
Hint 2
Premium
Hint 3
Premium
Hint 4
Premium