📝 문제
BST의 루트와 정수 자연수 k 가 주어진다. BST의 k 번쨰로 작은 수를 리턴하라.
🎈 풀이
중위순회를 돌면 작은 수 부터 탐색하게 되므로 일반적인 중위 순회에 조건식 하나만 추가하였다.
시간복잡도: O(n)
공간복잡도: O(n)
class Solution {
int cnt = 0;
public int kthSmallest(TreeNode root, int k) {
return dfs(root, k, 0);
}
private int dfs(TreeNode node, int k, int target) {
if (node == null) return target;
target = dfs(node.left, k, target);
cnt++;
if (cnt == k) {
target = node.val;
}
target = dfs(node.right, k, target);
return target;
}
}
'코딩테스트(Kotlin) > LeetCode Top Interview 150' 카테고리의 다른 글
[3주차] 637. Average of Levels in Binary Tree (0) | 2023.09.08 |
---|---|
[3주차] 199. Binary Tree Right Side View (0) | 2023.09.08 |
[3주차] 530. Minimum Absolute Difference in BST (0) | 2023.09.07 |
[2주차] 242. Valid Anagram (0) | 2023.09.01 |
[2주차] 383. Ransom Note (0) | 2023.09.01 |