이진 탐색 트리는 왼쪽이 작고 오른쪽이 크다.
val을 기준으로 오른쪽으로 갈 지, 왼쪽으로 갈 지 판단하면 되겠다.
계속 순회하면서 root.val == val
인 경우는 바로 리턴해주고, while이 끝날때까지 못 찾으면 null이 될테니 요구조건을 만족한다.
참고: 마지막 부분에 return null
로 바꿔주면 메모리를 살짝 덜 써서 71.62% Beats 달성할 수 있다. return root
하는 경우 참조를 더 오래 가지고 있는 듯
class Solution {
public TreeNode searchBST(TreeNode root, int val) {
while (root != null) {
if (root.val == val) {
return root;
}
if (root.val < val) {
root = root.right;
} else {
root = root.left;
}
}
return root;
}
}