Solution1: iterative
Run time complexity is O(logn), constant space.
//iterative
public static boolean search(TreeNode root, int num) {
if(root == null) {
return false;
}
TreeNode node = root;
while(node.val != num) {
if(node.val < num) {
node = node.right;
}else {
node = node.left;
}
if(node == null) {
return false;
}
}
return true;
}
Solution2: recursion
Run time complexity is O(logn), stack space.
//recursion
public static boolean searchRec(TreeNode root, int num) {
if(root == null)
return false;
if(root.val == num)
return true;
if(root.val < num) {
return searchRec(root.right, num);
}else {
return searchRec(root.left, num);
}
}
No comments:
Post a Comment