輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入餓陣列的任意兩個數字都互不相同。
class
treenode
:def
__init__
(self, x)
: self.val = x
self.left =
none
self.right =
none
class
solution
:def
verifysequenceofbst
(self, sequence)
:if sequence==
:return
false
rootnum=sequence[-1
]del sequence[-1
] index=
none
for i in
range
(len
(sequence)):
if index ==
none
and sequence[i]
>rootnum:
index=i
if index!=
none
and sequence[i]
return
false
if sequence[
:index]==[
]:leftret =
true
else
: leftret=self.verifysequenceofbst(sequence[
:index]
)if sequence[index:]==
: rightret=
true
else
: rightret = self.verifysequenceofbst(sequence[index:])
return leftret and rightret
二叉搜尋樹的前序遍序序列 仿後序
實現功能 給定乙個序列,判斷是否是乙個搜尋樹的前序序列,如果是輸出 yes 反之輸出 no 要解決的問題和題目 類似 注 這裡考慮嚴格的二叉搜尋樹,即左子樹上的值全部小於根,右子樹上的值全部大於根,不存在相等情況,兩兩不同。include include includeusing namespace...
劍指offer系列(23)二叉搜尋樹的後序遍歷序列
題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。樣例 輸入 輸出 true 思路分析 遞迴思路 已知條件 後序序列最後乙個值為root 二叉搜尋樹左子樹值都比root小,右子樹值都比root大。1 確...
劍指offer 學習筆記 二叉搜尋樹的後序遍歷序列
面試題33 二叉搜尋樹的後序遍歷序列。輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果 只要存在乙個二叉搜尋樹的後序遍歷結果為它即可 如果是返回true,不是返回false。假設輸入陣列的任意兩個數字都不相同。後序遍歷得到的序列中,最後乙個數字是樹的根節點的值。陣列中前面的數字可分為兩部...