給定乙個有序整數陣列,元素各不相同且按公升序排列,編寫乙個演算法,建立一棵高度最小的二叉搜尋樹。
給定有序陣列: [-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...