我正在为一个展开树工作一个正确的旋转方法。当我尝试运行我的程序时,我一直得到一个空指针异常,但我不知道为什么。这是我的树
5
/
2
/
1
这是我得到空指针的地方,它在lr赋值。 lr应该为null,因为2没有权限,但节点只是为空,然后程序应该继续?或者因为它的null我必须首先检查2是否有权利?
Node<E> p = findParent(x.getData());
Node<E> l = x.getLeft();
Node<E> lr = l.getRight();
答案 0 :(得分:0)
如果l
为null
,则l.getRight()
将抛出空指针异常。
您需要测试l
是否为null
:
Node<E> lr = (l==null)?null:l.getRight();
如果null
为lr
,该代码会将l
分配给null
,如果l.getRight()
不是{{1},则会分配l
}}