
here too I thought once we get to the leftmost node, we should update answer. Thats true but the second if statement should be placed after the inorder traversal of left node FIRST. This is cuz if we have value like 4, which doesnt exist in BST in this diagram, we have to return -1. So if the node is bigger than num, we just return. And since ans is declared as -1, we return ans
//int findLargestSmallerKey(int num) {
// // your code goes here
//
// inOrderTraversal(root, num);
// return ans;
//}
//// left->root->right
//void inOrderTraversal(Node node, int num){
// if(node==null) return;
// inOrderTraversal(node.left, num);
// if(node.key>=num) {
// return;
// }
// ans = node.key;
// inOrderTraversal(node.right, num);
//}
log n for balanced
n for skwede space
n time