LeetCode練習題 建立最小高度二叉樹

2021-10-05 07:56:31 字數 943 閱讀 9905

給定乙個有序整數陣列,元素各不相同且按公升序排列,編寫乙個演算法,建立一棵高度最小的二叉搜尋樹。

給定有序陣列: [-10,-3,0,5,9],

乙個可能的答案是:[0,-3,9,-10,null,5],它可以表示下面這個高度平衡二叉搜尋樹:

0 

/ \

-3 9

/ /

-10 5

"""

definition for a binary tree node.

class treenode:

def __init__(self, x):

self.val = x

self.left = none

self.right = none

"""class

solution

:def

sortedarraytobst

(self, nums: list[

int])-

> treenode:

n =len(nums)

ifnot n:

return

mid =

len(nums)//2

#計算中值

root=treenode(nums[mid]

)#找出中值,樹化,並賦值給root

root.left=self.sortedarraytobst(nums[

:mid]

)#把列表中根值左邊的數值拿出來做遞迴建立左子樹

root.right=self.sortedarraytobst(nums[mid+1:

])#把列表中根值右邊的數值拿出來做遞迴建立左子樹

return root

在做這道題時,在網上找了乙個關於二叉樹的詳解(python版),這裡把鏈結發出來,便於翻找和鞏固。

LeetCode 棧的練習題

如果是這種左右括號成對出現的就是有效的,返回true,不是就返回false.思路 利用乙個棧,左括號先入棧,然後如果有友括號入棧,就同時出棧,這樣一直遍歷整個字串,最後判斷棧是否為空就行了。public static boolean valid string str else char cstack...

LeetCode 練習題(簡單2)

3.給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。第一次錯誤答案 自己的解答直接忽略了負號和溢位的情況,假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整 數溢位那麼就返回 0。第二次錯誤答案 先利用str 函...

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...