劍指Offer 33 js 二叉搜尋樹的後序遍歷

2021-10-16 15:30:38 字數 967 閱讀 9954

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

5

/ \2 6

/ \1 3

示例 1:

輸入: [1,6,3,2,5]

輸出: false

示例 2:

輸入: [1,3,2,6,5]

輸出: true

後序遍歷分成三部分:

先檢驗左子樹,左側比根節點小的值均判定為左子樹

除最後乙個節點和左子樹外的其他值為右子樹,若右子樹有乙個比根節點小,則返回false。

若存在左右子樹,遞迴檢測是否規範。

注意!!!在獲取右子樹序列時需要把根節點排除在外。

?資料結構專欄:劍指 offer 題解 + js **

?github筆記 :ruoruochen github

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

題目描述 輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。思路 遞迴。最後乙個數字是樹的根節點,第一部分是左子樹節點的值,都比根節點小。第二部分是右子樹節點的值,都比根節點大。class solution de...

劍指Offer 33 二叉搜尋樹的後序遍歷

由於是後序遍歷,所以陣列最後乙個元素是根節點 遞迴開始傳入起始元素 和 末尾元素 當起始索引 left right 結束遞迴 執行迴圈,找到第乙個比根節點大的元素 temp 它的左面是樹的左子樹,右面到根節之間是樹的右子樹 判斷temp 到 root 之間的結點是否全部大於根節點 進行下一次遞迴,直...

劍指offer面試題33二叉搜尋樹的後序遍歷序列

輸入乙個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷的結果。如果是則輸出yes,否則輸出no。假設輸入的陣列的任意兩個數字都互不相同。設計思想 序列的最後乙個元素一定是整棵樹的根節點,從序列開頭找第乙個大於根節點值的元素p val,該元素後邊直到末尾前乙個元素的元素值應該都大於p val 若p到...