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