23 二叉搜尋樹的後序遍歷

2021-09-23 22:35:41 字數 461 閱讀 5962

二叉搜尋樹有其規律,中序遍歷是乙個遞增陣列,因此後續遍歷也有了規律,那就是左子樹一定比根節點小,右子樹一定比根節點大,而後續遍歷最後乙個結點必定是根節點。後續遍歷是左->右->根的順序遍歷,所以按照規則來說,在後續遍歷陣列中,從第乙個大於根節點的數開始,剩下的數都應該大於根結點。如果違背這個規律說明這個陣列不是乙個二叉搜尋樹的後序遍歷結果,返回false。然後用遞迴的思想分別對左右子樹做判斷,當所有數都遍歷過了還沒有返回false的時候,就說明沒有違背規律,現在返回true即可。

public class solution 

public boolean istrue(int sequence,int start,int end)

for(int i=mid;ireturn istrue(sequence,start,mid-1)&&istrue(sequence,mid,end-1);

}}

23 二叉搜尋樹的後序遍歷序列

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。class solution 思路 已知條件 後序序列最後乙個值為root 二叉搜尋樹左子樹值都比root小,右子樹值都比root大。1 確定root ...

23 二叉搜尋樹的後序遍歷序列

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。總結 一 遞迴方式 好理解 1 熟悉後序遍歷原理,後序遍歷陣列最後乙個元素為根節點root 2 判斷找出左 右子樹集合的分界下標,然後分別遞迴判斷 3 ...

JZ23 二叉搜尋樹的後序遍歷

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則返回true,否則返回false。假設輸入的陣列的任意兩個數字都互不相同。解 該題目首先需要清楚二叉搜尋樹的概念,二叉搜尋樹 左子樹小於根節點,右子樹大於根節點 然後就是清楚後續遍歷的概念 左子樹 右子樹 根節點 那麼...