Leetcode Java Search in a Binary Search Tree
업데이트:
문제
코드
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode() {}
* TreeNode(int val) { this.val = val; }
* TreeNode(int val, TreeNode left, TreeNode right) {
* this.val = val;
* this.left = left;
* this.right = right;
* }
* }
*/
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
while (root != null && root.val != val) {
root = val < root.val ? root.left : root.right;
}
return root;
}
}
결과
설명
-
이진 탐색 트리인 root 내 val 값인 노드를 찾는 문제이다.
- root가 null이 아니면서 root의 val 값이 val과 다른 경우, 계속 반복하여 아래의 경우에 따라 탐색을 수행한다.
- val의 값이 root의 val 값보다 작은 경우, val 값이 root의 left TreeNode의 val 값에 가까우므로 root에 left TreeNode를 넣어준다.
- 위의 경우가 아닌 경우, val 값이 root의 right TreeNode의 val 값에 가까우므로 root에 right TreeNode를 넣어준다.
- 반복이 완료되면 탐색된 노드인 root를 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기