Java 空指针展开树
我正在为一棵八字树研究右旋转方法。当我试着运行我的程序时,我总是得到一个空指针异常,但我不知道为什么。这是我的树Java 空指针展开树,java,rotation,splay-tree,Java,Rotation,Splay Tree,我正在为一棵八字树研究右旋转方法。当我试着运行我的程序时,我总是得到一个空指针异常,但我不知道为什么。这是我的树 5 / 2 / 1 这就是我得到空指针的地方,它位于lr赋值上。lr应该为null,因为2没有权限,但是节点不应该为null,然后程序应该继续运行吗?或者因为它是空的,我必须先检查2是否有权利 Node<E> p = findParent(x.getData()); Node<E> l = x.
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();
Node p=findParent(x.getData());
节点l=x.getLeft();
节点lr=l.getRight();
如果l
为null
,则l.getRight()
将引发null指针异常
您需要测试l
是否为null
:
Node<E> lr = (l==null)?null:l.getRight();
Node lr=(l==null)?null:l.getRight();
如果l
为null
,则该代码将null
分配给lr
,如果l
不是null
,则该代码将分配l.getRight()