Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Oracle SQL
- GIT
- 보안뉴스요약
- 깃허브
- 보안뉴스 요약
- 파이썬
- ES6
- 카카오프로젝트100
- 랜섬웨어
- 보안뉴스 한줄요약
- 자바스크립트 node
- python
- 자바스크립트 jQuery
- 자바스크립트 객체
- 자바스크립트 API
- 보안뉴스한줄요약
- 보안뉴스
- 자바스크립트 prototype
- 카카오프로젝트
- oracle db
- oracle
- php
- 자바스크립트 element api
- javascript
- 다크웹
- 카카오프로젝트 100
- numpy
- 오라클
- 자바스크립트 기본 문법
- 자바스크립트
Archives
- Today
- Total
FU11M00N
[LeetCode] Kth Smallest Element in a BST - Javascript 본문
Kth Smallest Element in a BST
[이진 탐색 트리, k번째로 작은 수 찾기]
제약 조건
The number of nodes in the tree is n.
1 <= k <= n <= 10^4
0 <= Node.val <= 10^4
Example
문제 접근 방식
주어지는 트리가 이진 탐색 트리이고, k가 주어지면 k 번째로 작은 노드를 반환하면 되기에,
중위 순회 방법으로 쉽게 풀 수 있다.
중위 순회는 노드의 가장 왼쪽 - 루트 - 오른쪽 순으로 순회를 하는데,
이진 트리 탐색이기에, 가장 작은 수는 왼쪽부터 있는 특성을 이용해 풀 수 있었다.
먼저 재귀 함수를 만들어 root를 받아 data가 존재하지 않으면 리턴하는 제어문을 작성한다.
이후 노드의 맨 왼쪽부터 접근이 가능하도록 recusive 함수를 재귀 호출한다.
data.left가 존재할 때까지 재귀 호출을 하고 이후 index를 1씩 증가하며,
k와 값이 같은지 비교하고 같을 때 현재 노드의 값을 smallest 변수에 값을 넣고 리턴한다.
이후 data.right도 재귀 호출해 반복하여 값을 찾는다.
접근 코드
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
/**
* @param {TreeNode} root
* @param {number} k
* @return {number}
*/
var kthSmallest = function (root, k) {
let index = 0;
let smallest;
const recursive = data => {
if (!data) {
return;
}
recursive(data.left);
index++;
if (index == k) {
smallest = data.val;
return;
}
recursive(data.right);
};
recursive(root);
return smallest;
};
'알고리즘' 카테고리의 다른 글
[LeetCode] Average of Levels in Binary Tree - Javascript (0) | 2023.09.08 |
---|---|
[LeetCode] Binary Tree Right Side View - Javascript (0) | 2023.09.08 |
[LeetCode] Minimum Absolute Difference in BST - Javascript (0) | 2023.09.06 |
[LeetCode] Find Minimum in Rotated Sorted Array - Javascript (0) | 2023.09.04 |
[LeetCode] Search in Rotated Sorted Array - Javascript (0) | 2023.09.04 |
Comments