題目描述
輸入一個整數數組,判斷該數組是不是某二叉搜尋樹的後序周遊的結果。如果是則輸出yes,否則輸出no。假設輸入的數組的任意兩個數字都互不相同。
此題仍然是對二叉樹周遊方法的考察,但是與直接對周遊方法的考察不太一樣,因為這裡的輸入是後續周遊的序列,是以要判斷該序列是否是某二叉樹的後續周遊結果,關鍵在于找出根節點,根節點的左子樹和根節點的右子樹,然後繼續對左子樹和右子樹進行判斷,直到全部元素通路完畢。這裡很顯然是一個遞歸的過程。由于後續周遊是先通路雙親節點,接着通路左孩子,再通路右孩子,是以需要對每個節點的左右子樹做進一步的判斷。
明白思路後,可以寫出如下的實作代碼(已被牛客ac):