二叉搜尋樹的後序遍歷序列

2022-08-11 20:03:13 字數 538 閱讀 8568

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

首先需要知道,二叉搜尋樹的特點是,左子樹的所有節點的值都小於根節點的值,右子樹的所有節點的值都大於根節點的值。後序遍歷是按照左——右——根的順序進行遍歷的。所以這道題的大體思路是,根據左子樹小於根節點的特點,找到左子樹的分界點,然後從右子樹開始,看是不是所有的值都大於根節點,如果出現小於根節點的情況,說明不符合要求。然後對左子樹 (l, k-1) 和右子樹 (k, r-1) 進行遞迴。當 l >= r 時,說明判斷完成,可以返回true。

還有要注意特判一下陣列是否為空,如果為空,直接返回false。

c++**如下:

1

class

solution 910

bool dfs(int l, int

r)17

return dfs(l, k-1) && dfs(k, r-1

);18

}19 };

二叉搜尋樹的後序遍歷序列

題目 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是返回true,否則返回false。假設輸入的陣列的任意兩個數字都不相同。解答 二叉搜尋樹後序遍歷最後訪問的是根節點,根據根節點將陣列分成兩部分,前面一部分即左子樹值小於根節點值,後面一部分即右子樹的值大於根節點 再遞迴的檢查...

二叉搜尋樹的後序遍歷序列

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

二叉搜尋樹的後序遍歷序列

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。class solution 在二叉搜尋樹中右子樹的結點大於根結點 int j i for j0 left verifysquenceofbst lefttree...