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

2021-06-21 08:09:48 字數 490 閱讀 4461

q:輸入整數陣列,判斷該陣列是否為某二叉搜尋樹的後序遍歷結果。

題目裡有幾個字眼要求我們熟知,第一就是二叉搜尋樹,第二個就是後序遍歷,第三就是它是樹。

1)二叉搜尋樹:左孩子的值 < 根結點的值 < 右孩子的值

2)後序遍歷:左->右->根

3)樹:若一棵樹是滿足某一性質x的x樹,則其子樹若存在,則也定為滿足x性質的x樹。

好了,回到這個問題,通過2),我們可以從給定的陣列中找到這個樹的根,也就是陣列的最後乙個元素。通過1),我們可以將該樹劃分為左右兩部分(也可能劃分不了,就是不滿足條件時),根據3)我們可以對劃分的左右子樹進行遞迴操作。

那麼這個問題就顯得比較清晰了,至少不那麼沒有頭緒了。

bool verifysquenceofbst(int sequence, int length)

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

輸入乙個整數陣列,判斷該整數陣列是不是某二叉搜尋樹的後序遍歷的結果,如果是則返回true,否則返回false。假設輸入陣列的任意兩個數字都互不相同 在後序遍歷得到的序列中,最後乙個數字是樹的根結點的值。陣列中前面的數字可以分為兩部分 第一部分是左子樹結點的值,它們都比根結點的值小,第二部分是右子樹結...

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

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。c 1 class solution 89 bool verify vector sequence,int left int right 18for int i ...

24 後序遍歷二叉搜尋樹

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結 果。如果是則輸出 yes,否則輸出 no。假設輸入的陣列的任意兩個數字都互不相 同。思路 先找到右子樹的開始位置,然後分別進行左右子樹遞迴處理。實現 public boolean verifysquenceofbst int s...