if语句上的Java空指针异常

if语句上的Java空指针异常,java,nullpointerexception,Java,Nullpointerexception,我有以下声明: if (node.left.left == null && node.left.right != null) 与二叉树有关。在这个if语句之前,我还有一个if语句检查node.left是否为null 为什么我在这个语句上得到空指针异常 方法中的完整代码,直到出现异常: BinaryTreeNode node= root; if (root==null) return true; else { while(node!=null

我有以下声明:

if (node.left.left == null && node.left.right != null)
与二叉树有关。在这个if语句之前,我还有一个if语句检查node.left是否为null

为什么我在这个语句上得到空指针异常

方法中的完整代码,直到出现异常:

 BinaryTreeNode node= root;


if (root==null)
    return true;
else
    {
        while(node!=null)
        {
        if (node.key>key && node.left !=null)
        {
            if (node.left.key==key)
                {
                    if(node.left.left==null && node.left.right==null)
                        node.left=null;
                    if(node.left.left==null && node.left.right!=null)
                        node.left=node.left.right;

您正在显式地将node.left设置为null。

能否向我们显示准确的错误消息和您的
node.left
检查?我的猜测是支票不起作用。显示两个语句,而不仅仅是其中一个。另外,请把这个做成一个MCVE;事实上,我们没有办法亲自尝试。
                    node.left=null;
                if(node.left.left==null && node.left.right!=null)
                    node.left=node.left.right