File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
kth-smallest-element-in-a-bst Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
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
+ }
You can’t perform that action at this time.
0 commit comments