This is my solution to challenge “Trees: Is This a Binary Search Tree?” on HackerRank. Click here to see the challenge.
import java.io.*; /* Hidden stub code will pass a root argument to the function below. Complete the function to solve the challenge. Hint: you may want to write one or more helper functions. The Node class is defined as follows: class Node { int data; Node left; Node right; } */ boolean checkBST(Node root) { return checkBSTRecursive(root,Integer.MIN_VALUE, Integer.MAX_VALUE); } boolean checkBSTRecursive(Node root, int min, int max) { if(root == null){ return true; } if(root.data < min || root.data > max){ return false; } if(root.left != null && root.right != null){ if(root.left.data > root.data || root.right.data < root.data){ return false; } } return checkBSTRecursive(root.left,min, root.data-1) && checkBSTRecursive(root.right,root.data+1,max); }