在Java中遇到'空指针访问'问题

smo*_*hie 1 java nullpointerexception

if(key == '1'){//insert at ->right.right
    BinaryNode tempPointer = root;

    while(tempPointer != null){
        tempPointer = tempPointer.right;
    }
    BinaryNode newNode = new BinaryNode(x);
    newNode.right = null;
    newNode.left = null;
    size++;
    lastNode = newNode;
    newNode.parent = tempPointer;
    tempPointer.right = newNode;
}
Run Code Online (Sandbox Code Playgroud)

它一直说termPointer在这个位置只能为空.我无法弄清楚为什么.

这也失败了:

newNode.parent = tempPointer.parent; //'tempPointer can only be null here'
tempPointer = newNode;
Run Code Online (Sandbox Code Playgroud)

Jul*_*ain 8

你的while循环只会在tempPointer结束时结束null.tempPointer循环后不设置任何其他值,因此它将一直保持null到函数结束.