劍指 Offer - 23:二叉搜尋樹的後序遍歷序列
阿新 • • 發佈:2018-12-18
題目描述
輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的陣列的任意兩個數字都互不相同
題目連結:https://www.nowcoder.com/practice/a861533d45854474ac791d90e447bafd
解題思路
二叉搜尋樹,根的左邊都比根小,根的右邊都比根大
依據上述特性,刪除根節點,進而將序列分段,分段成功則繼續遞迴
public class Solution {
public boolean VerifySquenceOfBST(int [] sequence) {
if (sequence == null || sequence.length == 0) return false;
int len = sequence.length;
int i = 0;
while (len > 1) {
len--;
while (sequence[i++] < sequence[len] && i < len);
while (sequence[i++] > sequence[ len] && i < len);
if (i < len) return false;
i = 0;
}
return true;
}
}