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

2021-09-24 16:52:22 字數 773 閱讀 3950

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

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

基本上就是中序遍歷

# definition for a binary tree node.

# class treenode(object):

# def __init__(self, x):

# self.val = x

# self.left = none

# self.right = none

class

solution

(object):

defkthsmallest

(self, root, k)

:"""

:type root: treenode

:type k: int

:rtype: int

"""res =

self.visitnode(root, res)

return res[k -1]

# 中序遍歷

defvisitnode

(self, root, res)

:if root is

none

:return

self.visitnode(root.left, res)

self.visitnode(root.right, res)

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

難度 中等 題目描述 思路總結 偷個小懶,用中序遍歷出二叉搜尋樹的序列,然後直接返回下標。題解一 definition for a binary tree node.class treenode def init self,x self.val x self.left none self.right...

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

題目 給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。先是自己寫的糟糕的演算法 然後是官方的迭代演算法,可以在找到之後就不再查詢,降低了時間空間複雜度 class solution root st...

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

230.二叉搜尋樹中第k小的元素 二叉搜尋樹的中序遍歷是有序 公升序 的,利用這個性質。左子樹節點值均比根節點值小,右子樹節點值均比根節點值大。這是解題思路的 左右子樹均保持性質1。definition for a binary tree node.class treenode def init s...