前一部分的元素每乙個一定都是小於最後乙個元素的,後一部分的元素每乙個一定都是大於最後乙個元素的。天然用遞迴去做。
我的做法是每次開始的時候用遍歷的方法記錄第乙個比最後元素大的位置。
class
solution
bool
reorder
(vector<
int>
& sequence,
int start,
int end)
else
if(sequence[i]
< sequence[end]
&& flag ==1)
}return
reorder
(sequence,start, mid-1)
&&reorder
(sequence, mid, end-1)
;}};
二叉搜尋樹的後序遍歷
二叉搜尋樹的後序遍歷序列中,最後乙個值是根結點,前面比根節點小的是左結點,後面比根結點大的是右結點。include include bool verifysquenceofbst int sequence,int length int root sequence length 1 int i 0 在...
二叉搜尋樹的後序遍歷
描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷。如果是,則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。1 樣例輸入 5 7 6 9 11 10 8 1 樣例輸出 yes 2 樣例輸入 7 4 6 5 2 樣例輸出 no 首先要知道二叉搜尋樹的定義 或者是一棵空樹...
二叉搜尋樹的後序遍歷
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。思路採用遞迴方法 include include includeusing namespace std bool core vectorsequence,int ...