- Convert Sorted Array to Binary Search Tree Easy
1169
120
Favorite
Share 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
思路: BST满足left.key<parent.key<=right.key,所以,数组取中间值,中间值为root,左右子数组做迭代,
代码:python3
class Solution:
def sortedArrayToBST(self, nums: List[int]) -> TreeNode:
def convert(left,right):
if left>right:return None
mid=(left+right)//2
node=TreeNode(nums[mid])
node.left=convert(left,mid-1)
node.right=convert(mid+1,right)
return node
return convert(0,len(nums)-1)
复制代码
tips:
BST任何一颗子树上的三个节点left, parent, right. 满足条件left.key<parent.key<=right.key,一颗典型的BST如下图所示:
复制代码