1. 程式人生 > 其它 >資料結構與演算法(二叉搜尋樹)~ 介紹二叉搜尋樹以及力扣上幾道二叉搜尋樹題目的方法和套路

資料結構與演算法(二叉搜尋樹)~ 介紹二叉搜尋樹以及力扣上幾道二叉搜尋樹題目的方法和套路

資料結構與演算法(二叉搜尋樹)~ 介紹二叉搜尋樹以及力扣上幾道二叉搜尋樹題目的方法和套路


1,二叉樹的資料結構:

請參考文章:《資料結構與演算法(二叉樹)~ 介紹二叉樹以及力扣上幾道二叉樹題目的方法和套路~ 第一部分

❀ 二叉搜尋樹的特點:

● 整個二叉搜尋樹非常有特點,根大於左子樹, 小於右子樹

● 二叉搜尋數的中序遍歷是有序的~升序的

✿ 總結一些小套路吧 (沒有通用的套路,就講一下方法哈):

(1)108_將有序陣列轉換為二叉搜尋樹 的方法 和 套路:

方法一:利用二叉搜尋樹特點:根大於左,小於右【將陣列不斷地按中間點劃分成左右子樹】


(2)173_二叉搜尋樹迭代器 的方法 和 套路:

方法一:迭代器(容器,提前儲存了按照一定規則擺放的資料~ 中序遍歷(遞迴)),然後定義一個全域性索引變數來輔助是否有next和進入next

方法二:迭代器(容器,提前儲存了按照一定規則擺放的資料~ 中序遍歷(迭代)),然後定義一個全域性索引變數來輔助是否有next和進入next~因為題意要最小的,所以next方法,next到最後一層後【左為null】,該值【根】便是所求,然後切換到右邊


(3)230_二叉搜尋樹中第K小的元素 的方法 和 套路:

方法一:中序遍歷【遞迴法~輔助變數,遞迴到第k次 便是所求】

方法二:中序遍歷【迭代法~輔助變數,pop掉k個數,便是所求】


(4)450_刪除二叉搜尋樹中的節點 的方法 和 套路:

方法一:

方法二:

套路一:

(5)530_二叉搜尋樹的最小絕對差 的方法 和 套路:

方法一:

方法二:

套路一:

(6)700_二叉搜尋樹中的搜尋 的方法 和 套路:

方法一:

方法二:

套路一:

(7)701_二叉搜尋樹中的插入操作 的方法 和 套路:

方法一:

方法二:

套路一:

(8)783_二叉搜尋樹節點最小距離 的方法 和 套路:

方法一:

方法二:

套路一:

(9)938_二叉搜尋樹的範圍和 的方法 和 套路:

方法一:

方法二:

套路一:

(10)98_驗證二叉搜尋樹 的方法 和 套路:

方法一:

方法二:

套路一:

(11)99_恢復二叉搜尋樹 的方法 和 套路:

方法一:

方法二:

套路一: