劍指offer 二叉搜尋樹的後序遍歷序列

2021-10-08 15:17:33 字數 682 閱讀 3496

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。

本題是利用遞迴思想,判斷根節點的左子樹元素是否小於根節點,右子樹元素是否大於根節點。重點在於對左右子樹的劃分(因為傳入的是個陣列)

1.從第0位開始,找到第一位比根節點大的元素,記錄此位置i。在此位置之前都屬於左子樹(此時已經斷定左子樹都小於根節點)

2.檢查右子樹是否都大於跟節點(從第i位開始,到根節點前)

3.判斷左右子樹是否都屬於二叉搜尋樹。

public class solution 

boolean res = getres(sequence, 0, sequence.length - 1);

return res;

}public boolean getres(int seq, int start, int end)

for(i = start; i < end; i++)

}for(j = i; j < end; j++)

}boolean left = true;

boolean right = true;

if(i > 0)

if(i < seq.length)

return left&&right;

}}

劍指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 發現對於每一棵子樹,它的根結點總是對應該子樹的後序序列的最後乙個數 ...