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

2021-09-23 13:16:52 字數 469 閱讀 5173

題目描述

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

class solution 

};

思路:

已知條件:後序序列最後乙個值為root;二叉搜尋樹左子樹值都比root小,右子樹值都比root大。

1、確定root;

2、遍歷序列(除去root結點),找到第乙個大於root的位置,則該位置左邊為左子樹,右邊為右子樹;

3、遍歷右子樹,若發現有小於root的值,則直接返回false;

4、分別判斷左子樹和右子樹是否仍是二叉搜尋樹(即遞迴步驟1、2、3)。

class solution 

bool verify(vectorvec, int begin,int end)

};

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

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。總結 一 遞迴方式 好理解 1 熟悉後序遍歷原理,後序遍歷陣列最後乙個元素為根節點root 2 判斷找出左 右子樹集合的分界下標,然後分別遞迴判斷 3 ...

23 二叉搜尋樹的後序遍歷

二叉搜尋樹有其規律,中序遍歷是乙個遞增陣列,因此後續遍歷也有了規律,那就是左子樹一定比根節點小,右子樹一定比根節點大,而後續遍歷最後乙個結點必定是根節點。後續遍歷是左 右 根的順序遍歷,所以按照規則來說,在後續遍歷陣列中,從第乙個大於根節點的數開始,剩下的數都應該大於根結點。如果違背這個規律說明這個...

二叉搜尋樹的後序遍歷序列(第23題)

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。ac 100 思路 陣列最後乙個數就是二叉樹的根節點。剩下的數可以分為三種情況 1 全小於最後乙個數 根節點的左子樹 2 全大於最後乙個數 根節點的右子樹 3 前...