Skip to content

Commit 540540a

Browse files
committed
feat: kth smallest element in a bst
1 parent 21d1261 commit 540540a

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
/**
2+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: k๋ฒˆ์งธ ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ์ˆ˜์ผ ๋•Œ๋Š” ์ตœ์•…์˜ ๊ฒฝ์šฐ์ด๋ฉฐ, ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋ฏ€๋กœ O(n)
3+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: ์žฌ๊ท€ ํ˜ธ์ถœ ์Šคํƒ์˜ ๊นŠ์ด๋Š” ๊ท ํ˜• ์žกํžŒ ํŠธ๋ฆฌ์˜ ๊ฒฝ์šฐ O(logn), ํŽธํ–ฅ๋œ ํŠธ๋ฆฌ๋Š” O(n)
4+
*/
5+
/**
6+
* Definition for a binary tree node.
7+
* function TreeNode(val, left, right) {
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+
* @param {TreeNode} root
15+
* @param {number} k
16+
* @return {number}
17+
*/
18+
var kthSmallest = function(root, k) {
19+
let kth;
20+
let cnt = k;
21+
22+
const dfs = (node) => {
23+
if (!node) return;
24+
dfs(node.left);
25+
cnt--;
26+
if(cnt ===0) {
27+
kth = node.val
28+
return;
29+
}
30+
dfs(node.right);
31+
}
32+
dfs(root)
33+
return kth;
34+
}

0 commit comments

Comments
ย (0)