Question: For this BST tree Why does this give me a timed out error(possibly infinite loop) public static int findClosestValueInBst(BST tree, int target) { if(tree.value ==
For this BST tree

Why does this give me a timed out error(possibly infinite loop)
public static int findClosestValueInBst(BST tree, int target) { if(tree.value == target) return tree.value; int temp = tree.value; while(tree != null){ if(Math.abs(temp - target) > Math.abs(target - tree.value)){ temp = tree.value; } if(target tree.value) { tree = tree.right; } } return temp; }
But this one doesnt
public static int findClosestValueInBst(BST tree, int target) { if(tree.value == target) return tree.value; BST next = tree; int temp = tree.value; while(next != null){ if(Math.abs(temp - target) > Math.abs(target - next.value)){ temp = next.value; } if(target tree.value) { next = next.right; } } return temp; }
Sample input: 10 ,12 5 15 2 513 22 1 14 k
Step by Step Solution
There are 3 Steps involved in it
Get step-by-step solutions from verified subject matter experts
