題目描述:輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結
果。如果是則輸出 yes,否則輸出 no。假設輸入的陣列的任意兩個數字都互不相
同。思路:先找到右子樹的開始位置,然後分別進行左右子樹遞迴處理。
**實現:
public boolean verifysquenceofbst(int sequence)
else if(sequence.length == 1)
return judgepostorder(sequence, 0, sequence.length - 1); }
public boolean judgepostorder(int sequence, int start, int end)
int i = start;
while (i <= end && sequence[i] < sequence[end])
for (int j = i; j <= end; j++) }
return judgepostorder(sequence, start, i - 1) && judgepostorder(sequence, i, end - 1);
}
24 二叉搜尋樹的後序遍歷序列
輸入乙個整數陣列,判斷該整數陣列是不是某二叉搜尋樹的後序遍歷的結果,如果是則返回true,否則返回false。假設輸入陣列的任意兩個數字都互不相同 在後序遍歷得到的序列中,最後乙個數字是樹的根結點的值。陣列中前面的數字可以分為兩部分 第一部分是左子樹結點的值,它們都比根結點的值小,第二部分是右子樹結...
24 二叉搜尋樹的後序遍歷序列
輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。c 1 class solution 89 bool verify vector sequence,int left int right 18for int i ...
二叉搜尋樹的後序遍歷
二叉搜尋樹的後序遍歷序列中,最後乙個值是根結點,前面比根節點小的是左結點,後面比根結點大的是右結點。include include bool verifysquenceofbst int sequence,int length int root sequence length 1 int i 0 在...