難度:中等
題目描述:
思路總結:偷個小懶,用中序遍歷出二叉搜尋樹的序列,然後直接返回下標。
題解一:
# definition for a binary tree node.
# class treenode:
# def __init__(self, x):
# self.val = x
# self.left = none
# self.right = none
from collections import deque
class
solution
:def
kthsmallest
(self, root: treenode, k:
int)
->
int:
res =
stack = deque(
) cur = root
while stack or cur:
while cur:
cur = cur.left
cur = stack.pop(
) cur = cur.right
return res[k-
1]
題解一結果: 230 二叉搜尋樹中第K小的元素
給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。基本上就是中序遍歷 definition for a binary tree node.class treenode object def init...
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...