Skip to content

Commit a093b40

Browse files
committed
solve: kth smallest element in a bst
1 parent a87dd08 commit a093b40

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
class TreeNode {
2+
val: number;
3+
left: TreeNode | null;
4+
right: TreeNode | null;
5+
constructor(val?: number, left?: TreeNode | null, right?: TreeNode | null) {
6+
this.val = val === undefined ? 0 : val;
7+
this.left = left === undefined ? null : left;
8+
this.right = right === undefined ? null : right;
9+
}
10+
}
11+
12+
/*
13+
* TC: O(n)
14+
* SC: O(n)
15+
* */
16+
function kthSmallest(root: TreeNode, k: number): number {
17+
let count = 0;
18+
let result: null | number = null;
19+
20+
const inOrder = (node: TreeNode | null) => {
21+
if (!node || result !== null) {
22+
return false;
23+
}
24+
25+
if (inOrder(node.left)) {
26+
return true;
27+
}
28+
29+
count++;
30+
31+
if (count === k) {
32+
result = node.val;
33+
return true;
34+
}
35+
36+
inOrder(node.right);
37+
};
38+
39+
inOrder(root);
40+
41+
return result!;
42+
}

0 commit comments

Comments
 (0)