Skip to content

Commit f89d7e1

Browse files
committed
Create f-exuan21.java
kth-smallest-element-in-a-bst solution
1 parent cd94609 commit f89d7e1

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* public class TreeNode {
4+
* int val;
5+
* TreeNode left;
6+
* TreeNode right;
7+
* TreeNode() {}
8+
* TreeNode(int val) { this.val = val; }
9+
* TreeNode(int val, TreeNode left, TreeNode right) {
10+
* this.val = val;
11+
* this.left = left;
12+
* this.right = right;
13+
* }
14+
* }
15+
*/
16+
class Solution {
17+
18+
private int count = 0;
19+
private TreeNode resultNode = null;
20+
21+
public int kthSmallest(TreeNode root, int k) {
22+
searchNode(root, k);
23+
return resultNode.val;
24+
}
25+
26+
public void searchNode(TreeNode node, int k) {
27+
28+
if(resultNode != null) return;
29+
30+
if(node.left != null) {
31+
searchNode(node.left, k);
32+
}
33+
34+
count++;
35+
36+
if(count == k) {
37+
resultNode = node;
38+
return;
39+
}
40+
41+
if(node.right != null) {
42+
searchNode(node.right, k);
43+
}
44+
}
45+
}
46+
47+
// n : ๋…ธ๋“œ ๊ฐœ์ˆ˜
48+
// time : O(n) ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ•ด์•ผํ•จ
49+
// space : O(n) ์ตœ์•…์˜ ๊ฒฝ์šฐ ํ•œ ์ชฝ์œผ๋กœ ๋…ธ๋“œ๊ฐ€ ์น˜์šฐ์ณ์ ธ ์žˆ์Œ
50+
// -> ์žฌ๊ท€ ํ˜ธ์ถœ์ด ์ด๋ฃจ์–ด์ง€๋ฏ€๋กœ ์Šคํƒ์— ์Œ“์ž„ -> ํ•œ ์ชฝ์œผ๋กœ ์ ๋ ค ์žˆ์œผ๋ฉด ํŠธ๋ฆฌ์˜ ๋†’์ด๊ฐ€ n์ด ๋จ (ํŠธ๋ฆฌ์˜ ์ตœ๋Œ€ ๋†’์ด๊ฐ€ ์Šคํƒ์˜ ์ตœ๋Œ€ ๊นŠ)

0 commit comments

Comments
ย (0)