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

2022-07-08 03:12:16 字數 933 閱讀 5447

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

二叉搜尋樹:

它或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值; 它的左、右子樹也分別為二叉排序樹。

#

-*- coding:utf-8 -*-

class

solution:

defverifysquenceofbst(self, sequence):

#write code here

ifnot

sequence:

return

false

if len(sequence) == 1:

return

true

rootvalue = sequence[-1]

j =0

while sequence[j] j += 1

if j == len(sequence) - 1: #

說明列表值都小於根節點值,即為左子樹,沒有右子樹

return

true

elif sequence[j] >rootvalue:

for i in range(j, len(sequence)-1): #

判斷右子樹中是否有小於根節點值的

if sequence[i] return

false

return true #

沒有問題則說明是右子樹

return self.verifysquenceofbst(sequence[:j]) and self.verifysquenceofbst(sequence[j:len(sequence)-1])

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