При проверке, является ли Бинарное дерево бинарным деревом поиска, у меня исключение нулевого указателя в самой правой точке дерева. Когда левый крайний правый лист равен нулю, я получаю исключение Null Pointer. Я думаю, что проблема в том, что p.left равен нулю. Как я могу предотвратить эту ошибку?
public static boolean isValidBST(BinaryTree root) {
System.out.println(root.value);
return isValidBST(root, Integer.MIN_VALUE, Integer.MAX_VALUE);
}
private static boolean isValidBST(BinaryTree p, Integer min, Integer max){
if(p==null)
return true;
Integer va = (Integer) p.value;
if( min <= va
&& va <= max
&& isValidBST(p.left, min, va)
&& isValidBST(p.right, va, max))
return true;
else
return false;
}