File tree Expand file tree Collapse file tree 1 file changed +36
-0
lines changed
kth-smallest-element-in-a-bst Expand file tree Collapse file tree 1 file changed +36
-0
lines changed Original file line number Diff line number Diff line change 1+ import java .util .ArrayList ;
2+ import java .util .List ;
3+
4+ // Definition for a binary tree node.
5+ class TreeNode {
6+ int val ;
7+ TreeNode left ;
8+ TreeNode right ;
9+ TreeNode () {}
10+ TreeNode (int val ) { this .val = val ; }
11+ TreeNode (int val , TreeNode left , TreeNode right ) {
12+ this .val = val ;
13+ this .left = left ;
14+ this .right = right ;
15+ }
16+ }
17+ class SolutionKthSmallest {
18+ public int kthSmallest (TreeNode root , int k ) {
19+ // ์ด์ง ๊ฒ์ ํธ๋ฆฌ์ ๋ฃจํธ์ ์ ์ k๊ฐ ์ฃผ์ด์ง๋ฉด ํธ๋ฆฌ์ ์๋ ๋ชจ๋ ๋
ธ๋ ๊ฐ ์ค k๋ฒ์งธ๋ก ์์ ๊ฐ(1-์ธ๋ฑ์ค)์ ๋ฐํํฉ๋๋ค.
20+ // ์ด์ง ๊ฒ์ ํธ๋ฆฌ์ ํน์ฑ์ ์ด์ฉํด ์ค์ ์ํ๋ฅผ ํ๋ฉด ๋
ธ๋ ๊ฐ์ด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค.
21+ // ์ ๋ ฌ ํ k๋ฒ์งธ ๊ฐ์ ๋ฐํํ๋ค.
22+ // ์๊ฐ๋ณต์ก๋: O(N), ๊ณต๊ฐ๋ณต์ก๋: O(N)
23+ List <Integer > list = new ArrayList <>();
24+ inorder (root , list );
25+ return list .get (k - 1 );
26+ }
27+
28+ private void inorder (TreeNode root , List <Integer > list ) {
29+ if (root == null ) {
30+ return ;
31+ }
32+ inorder (root .left , list );
33+ list .add (root .val );
34+ inorder (root .right , list );
35+ }
36+ }
You canโt perform that action at this time.
0 commit comments