【資料結構】【二叉樹】四、二叉搜尋樹的特性(不斷補充)
刷leetcode進入了中等題目階段,發現二叉搜尋樹有一些解題技巧可循,故記錄於此。
一、題目1:二叉搜尋樹的後序遍歷序列(劍指Offer 33)
輸入一個整數陣列,判斷該陣列是不是某二叉搜尋樹的後序遍歷結果。如果是則返回true,否則返回false。假設輸入的陣列的任意兩個數字都互不相同。
參考以下這顆二叉搜尋樹:
5
/ \
2 6
/ \
1 3
示例:
輸入: [1,6,3,2,5]
輸出: false
解:
要把握住後序遍歷和二叉搜尋樹的後序遍歷的特性:
1. 後序遍歷的兩個特性
① 最後一個節點是根節點
② 先左子樹、後右子樹,根節點放在最後最後最後
2.二叉搜尋樹的特性
左子樹比根節點小,右子樹比根節點大
3.二叉搜尋樹的後序遍歷的特性
① 根節點在最後;
② 第一個比根節點大的數,一定在右子樹,陣列中它左邊的所有值,一定在左子樹;它右邊的所有值,一定在右子樹(除了最後的根節點)
③ 這樣再去對左子樹、右子樹做相同的判斷,遞迴+分治,即可完成判斷任務。
注:二叉搜尋樹的中序遍歷特性
二叉搜尋樹的中序遍歷結果,是從小到大排列的一個有序陣列。
相關文章
- 資料結構中的樹(二叉樹、二叉搜尋樹、AVL樹)資料結構二叉樹
- 資料結構-二叉搜尋樹資料結構
- 【資料結構】二叉搜尋樹!!!資料結構
- 資料結構☞二叉搜尋樹BST資料結構
- 資料結構之「二叉搜尋樹」資料結構
- 二叉搜尋樹的結構
- 資料結構-二叉搜尋樹的實現資料結構
- 資料結構之樹結構概述(含滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹、紅黑樹、B-樹、B+樹、B*樹)資料結構二叉樹
- 演算法與資料結構——AVL樹(平衡二叉搜尋樹)演算法資料結構
- 資料結構之二叉搜尋樹—Java實現資料結構Java
- 資料結構(樹):二叉樹資料結構二叉樹
- 資料結構高階--二叉搜尋樹(原理+實現)資料結構
- 資料結構:一文看懂二叉搜尋樹 (JavaScript)資料結構JavaScript
- 二叉搜尋樹
- 資料結構學習系列之二叉搜尋樹詳解!資料結構
- 二叉搜尋樹和二叉樹的最近公共祖先二叉樹
- [Python手撕]判斷二叉搜尋樹Python
- 滿二叉樹、完全二叉樹、平衡二叉樹、二叉搜尋樹(二叉查詢樹)和最優二叉樹二叉樹
- 資料結構 - 二叉樹資料結構二叉樹
- 資料結構-二叉樹資料結構二叉樹
- Day20 | 654.最大二叉樹 、 617.合併二叉樹 、 700.二叉搜尋樹中的搜尋 98.驗證二叉搜尋樹二叉樹
- 【java 資料結構】還不會二叉樹?一篇搞定二叉樹Java資料結構二叉樹
- 資料結構和演算法-Go實現二叉搜尋樹資料結構演算法Go
- 【資料結構】搜尋樹資料結構
- js實現完全排序二叉樹、二叉搜尋樹JS排序二叉樹
- 【亡羊補牢】挑戰資料結構與演算法 第39期 LeetCode 501. 二叉搜尋樹中的眾數(二叉樹)資料結構演算法LeetCode二叉樹
- [資料結構] 樹、二叉樹、森林的轉換資料結構二叉樹
- 資料結構——樹與二叉樹的遍歷資料結構二叉樹
- 二叉搜尋樹的操作集
- 資料結構-平衡二叉樹資料結構二叉樹
- 資料結構之「二叉樹」資料結構二叉樹
- LeetCode 95 | 構造出所有二叉搜尋樹LeetCode
- 【資料結構與演算法】二叉搜尋樹的簡單封裝資料結構演算法封裝
- 二叉搜尋樹的第 k 個結點
- JavaScript 二叉搜尋樹以及實現翻轉二叉樹JavaScript二叉樹
- 資料結構的故事之二叉樹, 字首樹, N叉樹資料結構二叉樹
- 重學資料結構(六、樹和二叉樹)資料結構二叉樹
- 重學資料結構之樹和二叉樹資料結構二叉樹