Programming/LeetCode
[Dart] 700. Search in a Binary Search Tree
Meezzi
2025. 4. 18. 10:17
728x90
1. 문제
2. 요구사항
1) 주어진 이진 탐색 트리(Binary Search Tree)에서 val값을 가진 노드를 찾는다.
2) 그 노드를 루트로 하는 서브 트리를 반환한다.
3) 값이 없으면 null을 반환한다.
3. 코드
이진 탐색 트리의 특징은 다음과 같다.
- 현재 노드 > 왼쪽 자식 노드
- 현재 노드 < 오른쪽 자식 노드
- 노드의 값은 모두 고유(unique)
class Solution {
// root - 현재 탐색 중인 노드 (루트부터 시작)
// val - 찾고자 하는 값
TreeNode? searchBST(TreeNode? root, int val) {
// 현재 노드가 null이면 null 반환
if (root == null) {
return null;
}
// 현재 노드의 값이 찾는 값과 같으면 이 노드를 반환
if (root.val == val) {
return root;
// 찾는 값이 현재 노드보다 작으면 왼쪽 서브트리로 재귀 호출
} else if (val < root.val) {
return searchBST(root.left, val);
// 찾는 값이 현재 노드보다 크면 오른쪽 서브트리로 재귀 호출
} else {
return searchBST(root.right, val);
}
}
}
728x90