題目描述:輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
輸入:每個測試案例包括2行:
第一行為1個整數n(1<=n<=10000),表示陣列的長度。
第二行包含n個整數,表示這個陣列,陣列中的數的範圍是[0,100000000]。
輸出:對應每個測試案例,如果輸入陣列是某二叉搜尋樹的後序遍歷的結果輸出yes,否則輸出no。
樣例輸入:
7
5 7 6 9 11 10 8
4
7 4 6 5
樣例輸出:
yes
no
#include#includebool verifysquenceofbst(int sequence ,int length){ if(sequence==null||length<0)
return false;
//二叉搜尋樹的root是序列最後乙個值
int root = sequence[length-1];
//在二叉搜素樹中左子樹的節點小於根節點
int i=0;
for(;iroot)
break;
//在二叉搜素樹中右子樹的節點大於根節點
int j=i;
for(;j0)
left=verifysquenceofbst(sequence,i);
//判斷右子樹是不是二叉搜素樹
bool right=true;
if(i
結果:
二叉搜尋樹的後續遍歷
二叉搜尋樹的後續遍歷 題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。bst後續遍歷 class solution 判斷後一半的問題,如果還有小於根的,則return false for int j ...
二叉搜尋樹的後續遍歷
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。coding utf 8 class solution def verifysquenceofbst self,sequence write code here ...
二叉搜尋樹的後續遍歷序列
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果,假設輸入的陣列的任意兩個數字都互不相同 author q.yuan public class judgepostorder leftend 判斷左子樹的值是否都小於根節點的值 for int i low i leftend i 判斷右子樹...