You are given the root
of a binary search tree (BST) and an integer val
.
Find the node in the BST that the node's value equals val
and return the subtree rooted with that node. If such a node does not exist, return null
.
이진 탐색 트리(BST)의 root
와 정수 val
이 주어집니다.
노드의 값이 val
과 같은 BST 내의 노드를 찾아 그 노드를 루트로 하는 서브트리를 반환합니다. 해당 노드가 존재하지 않는 경우, null
을 반환합니다.
[1, 5000]
범위에 있습니다.1 <= Node.val <= 10^7
root
는 이진 탐색 트리입니다.1 <= val <= 10^7
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
var current = root;
// BST를 순회하기 위한 반복문 시작
while (current != null) {
// 현재 노드의 값이 찾는 값과 같은 경우, 현재 노드를 반환
if (current.val == val) {
return current;
// 찾는 값이 현재 노드의 값보다 작은 경우, 왼쪽 서브트리로 이동
} else if (current.val > val) {
current = current.left;
// 찾는 값이 현재 노드의 값보다 큰 경우, 오른쪽 서브트리로 이동
} else {
current = current.right;
}
}
// 찾는 값이 트리에 없는 경우, null 반환
return null;
}
}