자율 학습/스터디

[LeetCode 75] 700. Search in a Binary Search Tree

60cod 2025. 3. 28. 13:06

 

 

TreeNode 클래스는 주석 그대로 만들었음.

타겟 트리 찾는 메소드 만들어서 왼쪽, 오른쪽 재귀적으로 탐색하게 하였음.

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;
    }

    public TreeNode findTree(TreeNode root, int target) {
        if (root == null)
        {
            return null;
        }
        
        if (root.val == target)
        {
            return new TreeNode(root.val, root.left, root.right);
        }
        else
        {
            // 왼쪽 탐색
            TreeNode leftNode = findTree(root.left, target);
            if (leftNode != null)
            {
                return leftNode;
            }
            // 왼쪽이 아니면 오른쪽 탐색
            return findTree(root.right, target);
        }
    }
}

class Solution {
    public TreeNode searchBST(TreeNode root, int val) {
        return root.findTree(root, val);
    }
}