題目描述
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。
思路1.二叉搜尋樹的特性是左子樹所有節點的值均小於根節點的值,右子樹所有節點的值均大於根節點的值。
2後序遍歷是先遍歷左子樹再遍歷右子樹,所以根節點一定在陣列最後一位上。
3.給出的陣列中,前面部分的值應小於陣列最後乙個值,後面部分的值應大於陣列最後乙個值。
可以採用遞迴的方法實現。
**function verifysquenceofbst(sequence)
return adjustsequence(sequence,0,sequence.length-1);
}function adjustsequence(sequence,start,end)
var i = start;
while(i < end && sequence[i] < sequence[end])
for(var j=i;j例如:給出陣列序列2436875
從索引值為0的2開始判斷是否小於根節點5,直到索引值i等於3,值為6的時候跳出while迴圈;
此時j=i=3,依次向後判斷值是否大於根節點6,若小於6則返回false;
將陣列分為兩個部分:243,687;分別對兩個子陣列進行判斷是否滿足情況。
劍指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 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...