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

2021-09-18 01:31:51 字數 748 閱讀 8403

題目:

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

思路:遍歷sequence,直到遇到比最後乙個值大的;此時sequence被最後乙個值分為左右兩個部分,若次數組是某二叉搜尋樹的後序遍歷的結果,則右半部分(最後乙個值除外)應該全部比最後乙個值大,驗證是否滿足,不滿足返回失敗,否則遞迴驗證左右兩部分。

**:

//方法一  需要額外空間儲存左右兩部分

class solution

bool verify

(vector<

int> sequence)

return

(verify

(left)

&&verify

(right));

}};//方法二 優化,維護start,end,儲存當前左右兩部分起始位置,不需要額外空間儲存左右兩部分

class solution

bool verify

(vector<

int>

&sequence,

int start,

int end)

return

(verify

(sequence, start, middle-1)

&&verify

(sequence, middle, end-1)

);}}

;

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