Search in a Binary Search Tree - LeetCode
문제 접근 🤔
- 재귀함수를 돌면서 노드의 값이
val 과 같을 때까지 확인한다.
- 같은 값이 없다면 빈 노드를 반환하고 같은 값이 있다면 해당 노드를 반환한다.
- 현재 노드의 값이
val 보다 작다면 현재 노드의 오른쪽을 탐색해야하고 크다면 왼쪽을 탐색해야한다.
놓쳤던 부분 😅
코드 😁
파이썬 코드(51 ms)
class Solution:
def searchBST(self, root: Optional[TreeNode], val: int) -> Optional[TreeNode]:
if not root or root.val == val: return root
return self.searchBST(root.right if root.val < val else root.left, val)
자바스크립트 코드(69 ms)
const searchBST = (root, val) => {
if (!root || root.val === val) {
return root;
}
return searchBST(root.val < val ? root.right : root.left, val);
};