【資料結構】【二叉樹】四、二叉搜尋樹的特性(不斷補充)
阿新 • • 發佈:2020-12-29
技術標籤:資料結構與演算法資料結構二叉樹leetcode演算法
目錄
刷leetcode進入了中等題目階段,發現二叉搜尋樹有一些解題技巧可循,故記錄於此。
一、題目1:二叉搜尋樹的後序遍歷序列(劍指Offer 33)
輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果。如果是則返回true,否則返回false。假設輸入的陣列的任意兩個數字都互不相同。
參考以下這顆二叉搜尋樹:
5 / \ 2 6 / \ 1 3
示例:
輸入: [1,6,3,2,5]
輸出: false
解:
要把握住後序遍歷和二叉搜尋樹的後序遍歷的特性:
1. 後序遍歷的兩個特性
① 最後一個節點是根節點
② 先左子樹、後右子樹,根節點放在最後最後最後
2.二叉搜尋樹的特性
左子樹比根節點小,右子樹比根節點大
3.二叉搜尋樹的後序遍歷的特性
① 根節點在最後;
② 第一個比根節點大的數,一定在右子樹,陣列中它左邊的所有值,一定在左子樹;它右邊的所有值,一定在右子樹(除了最後的根節點)
③ 這樣再去對左子樹、右子樹做相同的判斷,遞迴+分治,即可完成判斷任務。
注:二叉搜尋樹的中序遍歷特性
二叉搜尋樹的中序遍歷結果,是從小到大排列的一個有序陣列。