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