File tree Expand file tree Collapse file tree 1 file changed +41
-0
lines changed
kth-smallest-element-in-a-bst Expand file tree Collapse file tree 1 file changed +41
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * ๋ฌธ์ ์ค๋ช
3+ * - ์ด์ง ํ์ ํธ๋ฆฌ(BST)๊ฐ ์ฃผ์ด์ก์ ๋, k๋ฒ์งธ ์์ ์์๋ฅผ ์ฐพ๋ ๋ฌธ์
4+ *
5+ * ์์ด๋์ด
6+ * 1) ์ค์ ์ํ๋ฅผ ํ๋ฉด์ k๋ฒ์งธ ์์ ์์๋ฅผ ์ฐพ๋๋ค.
7+ * - ์ด์ง ํ์ ํธ๋ฆฌ(BST)๋ ์ค์ ์ํ(in-order traversal)ํ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๊ฐ์ ์ป์ ์ ์๋ค.
8+ */
9+
10+ class TreeNode {
11+ val : number ;
12+ left : TreeNode | null ;
13+ right : TreeNode | null ;
14+ constructor ( val ?: number , left ?: TreeNode | null , right ?: TreeNode | null ) {
15+ this . val = val === undefined ? 0 : val ;
16+ this . left = left === undefined ? null : left ;
17+ this . right = right === undefined ? null : right ;
18+ }
19+ }
20+
21+ function kthSmallest ( root : TreeNode | null , k : number ) : number {
22+ let result = - 1 ;
23+ let count = 0 ;
24+
25+ function inOrder ( node : TreeNode | null ) {
26+ if ( ! node || result !== - 1 ) return ;
27+
28+ inOrder ( node . left ) ;
29+ count ++ ;
30+
31+ if ( count === k ) {
32+ result = node . val ;
33+ return ;
34+ }
35+
36+ inOrder ( node . right ) ;
37+ }
38+
39+ inOrder ( root ) ;
40+ return result ;
41+ }
You canโt perform that action at this time.
0 commit comments