# 給定乙個二叉搜尋樹,編寫乙個函式 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 函式?
class treenode:
def __init__(self, x):
self.val = x
self.left = none
self.right = none
class solution:
def orders(self, root: treenode, arrays):
if root.left != none:
self.orders(root.left, arrays)
if root.right != none:
self.orders(root.right, arrays)
def kthsmallest(self, root: treenode, k):
arrays =
self.orders(root, arrays)
return arrays[k - 1]
leetcode 230 二叉搜尋樹BST中序遍歷
題意 在二叉搜尋樹中找到第k小的元素。解題思路 直接按照二叉搜尋樹中序遍歷即可得到從小到大排列的陣列,即很容易找到第k小的值 include using namespace std definition for a binary tree node.struct treenode treenode ...
LeetCode 230二叉搜尋樹中第k小的元素
給定乙個二叉搜尋樹,編寫乙個函式 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,nul...
LeetCode230 二叉搜尋樹中第k小的元素
給定乙個二叉搜尋樹,編寫乙個函式 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,nul...