
-Code
/**
* 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) {
// 현재 노드 null이면 null 반환
if (root == null) {
return null;
}
// target과 같으면 root 반환
if (root.val == val) {
return root;
}
// 왼쪽 오른쪽 검사
TreeNode left = searchBST(root.left, val);
TreeNode right = searchBST(root.right, val);
// 둘다 null이면 없음
if (left == null && right == null) {
return null;
} else {
// 둘 중 하나만 null이면 나머지 하나를 출력
return left == null ? right : left;
}
}
}'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글
| [백준/Java] 3018번 캠프파이어 (0) | 2025.12.31 |
|---|---|
| [LeetCode/Java] Guess Number Higher or Lower (0) | 2025.12.31 |
| [LeetCode/Java] Leaf-Similar Trees (0) | 2025.12.31 |
| [LeetCode/Java] Maximum Depth of Binary Tree (0) | 2025.12.31 |
| [LeetCode/Java] Number of Recent Calls (0) | 2025.12.31 |