File tree Expand file tree Collapse file tree 1 file changed +38
-0
lines changed
kth-smallest-element-in-a-bst Expand file tree Collapse file tree 1 file changed +38
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * Definition for a binary tree node.
3+ * class TreeNode {
4+ * val: number
5+ * left: TreeNode | null
6+ * right: TreeNode | null
7+ * constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
8+ * this.val = (val===undefined ? 0 : val)
9+ * this.left = (left===undefined ? null : left)
10+ * this.right = (right===undefined ? null : right)
11+ * }
12+ * }
13+ */
14+
15+ // Time Complexity: O(k) - 최악의 경우 모든 노드를 방문하면 O(n)
16+ // Space Complexity: O(h) - 재귀 호출 스택의 최대 깊이 (h는 트리의 높이)
17+ function kthSmallest ( root : TreeNode | null , k : number ) : number {
18+ let count = 0 ;
19+ let result = 0 ;
20+
21+ const inorder = ( node : TreeNode | null ) : void => {
22+ if ( ! node ) return ;
23+
24+ inorder ( node . left ) ;
25+
26+ count ++ ;
27+ if ( count === k ) {
28+ result = node . val ;
29+ return ;
30+ }
31+
32+ inorder ( node . right ) ;
33+ } ;
34+
35+ inorder ( root ) ;
36+
37+ return result ;
38+ }
You can’t perform that action at this time.
0 commit comments