154 108 將有序陣列轉換為二叉搜尋樹

2022-05-02 17:57:10 字數 905 閱讀 6145

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。(一開始沒思路,然後看了一下官方題解,稀里糊塗就做出來了,我也蒙了)

# 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):

""":type nums: list[int]

:rtype: treenode

"""start = 0

end = len(nums)

mid = (start + end) // 2

if start >= end:

return

root = treenode(nums[mid])

left = self.sortedarraytobst(nums[0: mid])

right = self.sortedarraytobst(nums[mid + 1: end])

if left:

root.left = left

if right:

root.right = right

return root

if __name__ == '__main__':

s1 = solution()

nums = [-10, -3, 0, 5, 9]

root = s1.sortedarraytobst(nums)

print("gfsdg")

LeetCode108 將有序陣列轉換為二叉搜尋樹

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...

LeetCode108 將有序陣列轉換為二叉搜尋樹

將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面這個高度平衡二叉搜尋樹 0 3 9 10...

leetcode108 將有序陣列轉換為二叉搜尋樹

將有序陣列轉換為二叉搜尋樹。難度 簡單。將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。本題中,乙個高度平衡二叉樹是指乙個二叉樹每個節點 的左右兩個子樹的高度差的絕對值不超過 1。示例 給定有序陣列 10,3,0,5,9 乙個可能的答案是 0,3,9,10,null,5 它可以表示下面...