class solution:
def verifysquenceofbst(self, sequence):
# write code here
if len(sequence) == 0:
return false
else:
root = sequence[-1]
del sequence[-1]
lefttree =
righttree =
# 左子樹和右子樹分界
splitindex = -1
for i in range(len(sequence)):
# 值小於根結點的歸為左子樹
if sequence[i] < root:
splitindex = i
else:
break
for i in range(splitindex+1, len(sequence)):
# 若右子樹部分有小於根結點的值,說明不是二叉搜尋樹
if sequence[i] > root:
else:
return false
if len(lefttree) <= 1:
left = true
else:
# 遞迴判斷左子樹
left = self.verifysquenceofbst(lefttree)
if len(righttree) <= 1:
right = true
else:
right = self.verifysquenceofbst(righttree)
return left and right
劍指Offer 二叉搜尋樹的後序遍歷
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。author zy date 2017年10月13日 下午9 34 21 decription 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如...
劍指offer 二叉搜尋樹的後序遍歷
時間限制 1秒 空間限制 32768k 熱度指數 524747 本題知識點 棧 樹輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。這兩天狀態不行,沒多大刷題的動力。菜還不想動,說的大概就是我了。遞迴 大佬的思路...
劍指offer 二叉搜尋樹的後序遍歷
題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。簡單思路 二叉搜尋樹 1.左孩子 根 右孩子 2.bst的左孩子和右孩子都是bst 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...