0108. Convert Sorted Array to Binary Search Tree

108. Convert Sorted Array to Binary Search Tree #

Problem #

Given an array where elements are sorted in ascending order, convert it to a height balanced BST.

For this problem, a height-balanced binary tree is defined as a binary tree in which the depth of the two subtrees of every node never differ by more than 1.

Example:

Given the sorted array: [-10,-3,0,5,9],

One possible answer is: [0,-3,9,-10,null,5], which represents the following height balanced BST:

      0
     / \
   -3   9
   /   /
 -10  5

Problem Summary #

Convert a sorted array in ascending order into a height-balanced binary search tree. In this problem, a height-balanced binary tree means a binary tree in which the absolute value of the height difference between the left and right subtrees of every node does not exceed 1.

Solution Approach #

  • Convert a sorted array into a height-balanced binary search tree according to the definition

Code #


package leetcode

/**
 * Definition for a binary tree node.
 * type TreeNode struct {
 *     Val int
 *     Left *TreeNode
 *     Right *TreeNode
 * }
 */
func sortedArrayToBST(nums []int) *TreeNode {
	if len(nums) == 0 {
		return nil
	}
	return &TreeNode{Val: nums[len(nums)/2], Left: sortedArrayToBST(nums[:len(nums)/2]), Right: sortedArrayToBST(nums[len(nums)/2+1:])}
}


Calendar Jun 25, 2026
Edit Edit this page
Total visits:   You are visitor No.
中文