將乙個按照公升序排列的有序陣列,轉換為一棵高度平衡二叉搜尋樹。(一開始沒思路,然後看了一下官方題解,稀里糊塗就做出來了,我也蒙了)
# 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 它可以表示下面...