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

2021-10-03 12:10:23 字數 672 閱讀 3032

題目描述

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

乙個序列是二叉搜尋樹的後序遍歷,二叉搜尋樹的特徵是結點左邊的值都小於自己,右邊的值都大於自己,後序遍歷順序是 左孩子–右孩子–根節點的順序,所以可以確定序列的最後乙個值為根節點的值,找到其之前的第乙個大於它的值,即為左子樹,判斷這之後的值是否都大於根節點值,然後遞迴判斷左右子樹

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

class solution:

def verifysquenceofbst(self, sequence):

# write code here

length=len(sequence)

if len(sequence)==0:

return false

root = sequence[-1]#根節點

i=0while sequence[i]0:

left = self.verifysquenceofbst(sequence[0:i])

if i今天碰到了新錯誤:

recursionerror: maximum recursion depth exceeded in comparison

參考解決報錯

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