|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
Given an integer array nums where the elements are sorted in ascending order, convert it to a height-balanced binary search tree.
Height-Balanced
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.
Example 1:
Input: nums = [-10,-3,0,5,9]
Output: [0,-3,9,-10,null,5]
Explanation: [0,-10,5,null,-3,null,9] is also accepted:
Example 2:
Input: nums = [1,3]
Output: [3,1]
Explanation: [1,null,3] and [3,1] are both height-balanced BSTs.
Constraints:
1 <= nums.length <= 104
-104 <= nums[i] <= 104
nums is sorted in a strictly increasing order.
Judy
Python# Definition for a binary tree node.
# class TreeNode(object):
# def __init__(self, val=0, left=None, right=None):
# self.val = val
# self.left = left
# self.right = right
class Solution(object):
def sortedArrayToBST(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
def f(nums):
l = len(nums)
if l == 1:
return TreeNode(val=nums[0])
elif l == 2:
return TreeNode(val=nums[1], left=TreeNode(val=nums[0]))
elif l == 3:
return TreeNode(val=nums[1], left=TreeNode(val=nums[0]), right=TreeNode(val=nums[2]))
m = l // 2
return TreeNode(val=nums[m], left=f(nums[:m]), right=f(nums[m+1:]))
return f(nums)
|
|