二叉搜尋樹中第K小的元素

2021-10-02 11:50:18 字數 1123 閱讀 3404

給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。

說明:你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。

示例 1:

輸入: root = [3,1,4,null,2], k = 1

3/ \

1 4

\ 2

輸出: 1

示例 2:

輸入: root = [5,3,6,2,4,null,null,1], k = 3

5/ \

3 6

/ \2 4

/ 1輸出: 3

高階:

如果二叉搜尋樹經常被修改(插入/刪除操作)並且你需要頻繁地查詢第 k 小的值,你將如何優化 kthsmallest 函式?

中序遍曆法

對於二叉搜尋樹而言,中序遍歷是公升序序列。

方法一:遞迴

通過構造 bst 的中序遍歷序列,則第 k-1 個元素就是第 k 小的元素。

}複雜度分析

方法二:迭代

在棧的幫助下,可以將方法一的遞迴轉換為迭代,這樣可以加快速度,因為這樣可以不用遍歷整個樹,可以在找到答案後停止。

}複雜度分析

二叉搜尋樹第K小元素

1.思路 迭代法 計算出二叉樹左節點的個數,如果左節點的個數等於k 1 則根節點就是我們要找的值,如果左節點的個數大於k 1,表明我們要查詢的第k個最小元素在左子樹中,如果左節點的個數小於k 1,表明要查詢的第k個最小元素在右子節點中,找到右子樹中第k count left 1個元素就是我們要找的元...

二叉搜尋樹中第K小的元素

目錄 1 題目描述 2 題目分析 3 實現 3.1 中序遍歷方法 3.2 結點計數方法 給定乙個二叉搜尋樹,編寫乙個函式kthsmallest來查詢其中第k個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。示例 1 輸入 root 3,1,4,null,2 k 1 3 1 ...

二叉搜尋樹中第K小的元素

給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。對二叉搜尋樹進行中序遍歷,將遍歷後的結果存到陣列中,陣列中的第k個元素就是二叉搜尋樹的第k小元素,因為二叉搜尋樹中序遍歷後得到的結果就是得到的結果就...