LeetCode 75: 700. Search in a Binary Search Tree

김준수·2024년 3월 29일
0

LeetCode 75

목록 보기
41/63
post-custom-banner

Description

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.


700. 이진 트리 검색

이진 탐색 트리(BST)의 root와 정수 val이 주어집니다.

노드의 값이 val과 같은 BST 내의 노드를 찾아 그 노드를 루트로 하는 서브트리를 반환합니다. 해당 노드가 존재하지 않는 경우, null을 반환합니다.

예제 1:

  • 입력: root = [4,2,7,1,3], val = 2
  • 출력: [2,1,3]

예제 1

예제 2:

  • 입력: root = [4,2,7,1,3], val = 5
  • 출력: null 또는 []

예제 2

제약 조건

  • 트리의 노드 수는 [1, 5000] 범위에 있습니다.
  • 1 <= Node.val <= 10^7
  • root는 이진 탐색 트리입니다.
  • 1 <= val <= 10^7

Solution


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;
    }
}
post-custom-banner

0개의 댓글