Convert Sorted Array to Binary Search Tree
Question
Given an array where elements are sorted in ascending order, convert it to a height balanced BST.
Tags
- Binary Search Tree
Thought
Use the recursion to build the tree.
Code
# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def sortedArrayToBST(self, nums):
"""
Use divide and conquer
:type nums: List[int]
:rtype: TreeNode
"""
if nums == []:
return None
mid = len(nums) / 2
node = TreeNode(nums[mid])
node.left = self.sortedArrayToBST(nums[:mid])
node.right = self.sortedArrayToBST(nums[mid+1:])
return node