1

我正在为展开树研究正确的旋转方法。当我尝试运行我的程序时,我不断收到空指针异常,但我不知道为什么。这是我的树

      5
     /
    2
   /
  1

这是我得到空指针的地方,它在 lr 分配上。lr 应该为空,因为 2 没有权限,但节点不应该为空,然后程序应该继续运行吗?或者因为它的 null 我必须先检查 2 是否有权利?

    Node<E> p = findParent(x.getData());    
    Node<E> l = x.getLeft();
    Node<E> lr = l.getRight();
4

1 回答 1

0

如果lnull,那么l.getRight()将抛出一个空指针异常。

您需要测试是否lnull

Node<E> lr = (l==null)?null:l.getRight();

该代码将分配nulllrif lis null,并将分配l.getRight()if lis not null

于 2013-03-12T05:53:59.093 回答