給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。
說明:你可以假設 k 總是有效的,1 ≤ k ≤ 二叉搜尋樹元素個數。
bst中序遍歷公升序的特性,基於中序遍歷改。
遞迴終止的條件是什麼?一次遞迴中要進行什麼操作?遞迴想要返回什麼資訊?
終止條件:結點為空
遞迴中操作:count記錄當前為第n個節點,當count=k,賦值返回。
public
intkthsmallest
(treenode root,
int k)
process
(root, k)
;return ret;
}int count =
0,ret=0;
public
void
process
(treenode root,
int k)
process
(root.left, k);if
(++count == k)
process
(root.right, k)
;}
230 二叉搜尋樹中第K小的元素
給定乙個二叉搜尋樹,編寫乙個函式 kthsmallest 來查詢其中第 k 個最小的元素。說明 你可以假設 k 總是有效的,1 k 二叉搜尋樹元素個數。基本上就是中序遍歷 definition for a binary tree node.class treenode object def init...
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...