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

2021-09-12 14:45:44 字數 1020 閱讀 8148

# 給定乙個二叉搜尋樹,編寫乙個函式 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...