我這裡借鑑一位大佬的很奇妙的思路:
遍歷的時候,如果遇到比最後乙個元素大的節點,就說明它的前面都比最後乙個元素小,該元素後面的所有值都必須大於最後乙個值,這兩個條件必須都要滿足。否則就說明該序列不是二叉樹後序遍歷。
public
boolean
verifysquenceofbst
(int
sequence)
int root = sequence.length-1;
int count =0;
while
(root>0)
while
(sequence[root]
(count
root--
; count =0;
}return
true
;}
劍指Offer之 二叉搜尋樹的後續遍歷序列
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後續遍歷的結果。根據二叉搜尋樹的後續遍歷結果的特點來判斷 序列的最後乙個數是根結點,且前面一部分的數 最後乙個數,根結點之前的後一部分數 最後乙個數。類似這樣的陣列 5,7,6,9,11,10,8 如果滿足上面的條件,然後再對兩部分進行遞迴判斷,否則直...
劍指offer之二叉搜尋樹的後序遍歷序列 C
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。二叉搜尋樹的特點就是永遠是左子樹 根 右子樹。看到二叉樹,首先想到的是遞迴,選擇了遞迴,那麼我們只要想好判斷根,左子樹,右子樹的條件就可以,後序遍歷,最後乙個必然...
劍指offer之二叉樹總結
會用遞迴了二叉樹的問題就會一大半了.一.用遞迴求解 對於要利用二叉樹的規律的題都可以利用它的左節點也是其左子樹的根節點的特性來遞迴求解。可以說那種引數有根節點的題一般都可以用遞迴來解決,來看看 劍指offer 中可用遞迴解決的題 1.根據前序遍歷的性質,第乙個元素必然就是root,那麼下面的工作就是...