230. Kth Smallest Element in a BST
題目網址:https://leetcode.cn/problems/kth-smallest-element-in-a-bst/
題意:給一 BST 的
root
和一整數k
, 返回 BST 中第k
小的元素(從1
開始計數)。
Solution:
想法:利用 BFS(inorder), 不斷取當前 node 的
left
直到node->left
為null
, 由於left child
是「後進先出」, 故要使用 stack。將這些left
一個一個 pop 掉, 並將k
減去1
- 若
k == 0
, 代表當前node
為第k
小的數- 若
k > 0
, 代表當前的數還太小, 故要嘗試其右子樹中的 node
class Solution { |
- time:$O(n)$ ➔ worse case:skew tree, 其中
n
為 node 數 - space:$O(n)$ ➔ 取決於 stack 長度, 最大長度為
n
本部落格所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議。轉載請註明來自 Zako's Blog!
評論