劍指offer 二叉搜尋樹的後序遍歷序列

2021-08-20 20:21:28 字數 991 閱讀 8238

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

後序遍歷序列的根節點為最後乙個值。

搜尋樹的左子樹小於根節點,右子樹大於根節點。

# -*- coding:utf-8 -*-

class

solution:

defverifysquenceofbst

(self, sequence):

# write code here

ifnot sequence: return

false

root = sequence[-1]

leftindex = -1

for i in range(len(sequence)):

if sequence[i] >= root:

leftindex = i - 1

break

print(sequence, leftindex, sequence[:leftindex + 1], sequence[leftindex + 1: len(sequence) - 1])

for i in range(leftindex + 1, len(sequence) - 1):

if sequence[i] < root:

return

false

res1 = true; res2 = true

if leftindex != -1:

res1 = self.verifysquenceofbst(sequence[:leftindex + 1])

if leftindex + 1 != len(sequence) - 1:

res2 = self.verifysquenceofbst(sequence[leftindex + 1: len(sequence) - 1])

return res1 and res2

劍指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 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...