这段代码是为了找出二进制树是否为min heap,我在public static boolean isMinHeap的第3 if语句中得到readUTF()
,我不确定为什么我一直得到这个异常因为我认为由于上述中断,代码才有效。
NullPointerException
答案 0 :(得分:0)
您不会检查array
中的元素是否不是null
。您只需检查array[i] != null && array [(i-1)/ 2] == null
中的以下ArrayHeapChecker#isBinaryTree
。在将Integer
与null
进行比较时,这不会保护您免受NPE的侵害。例如。您的代码将因以下输入而失败:new Integer[]{1, 2, 3, 4, 5, 6, null}
。我不建议您修复,因为这取决于您的要求,但您的检查不够严格。
更准确地说,就像现在一样,只要array
具有奇数长度,最后一个元素为null
,lenght == 1
除外{/ 1}},您的代码就会失败。