Skip to content

Commit 6b783a7

Browse files
Kth Smallest Element in a BST solution
1 parent bcd0ee8 commit 6b783a7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
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+
}

0 commit comments

Comments
ย (0)