我想指向二叉樹中左子樹中最右邊的節點。我正在使用java。我不斷收到空指針異常。並且root.lchild不爲null,即使對於具有3個級別的樹,我也一直得到空值 以下是我的代碼;左子樹中最右邊的節點Java
Node rightmost;
rightmost=root.lchild;
while(rightmost.right!=null)
{
rightmost=rightmost.right;
}
我想指向二叉樹中左子樹中最右邊的節點。我正在使用java。我不斷收到空指針異常。並且root.lchild不爲null,即使對於具有3個級別的樹,我也一直得到空值 以下是我的代碼;左子樹中最右邊的節點Java
Node rightmost;
rightmost=root.lchild;
while(rightmost.right!=null)
{
rightmost=rightmost.right;
}
應該
Node rightmost = root != null ? root.lchild : null;
if (rightmost != null)
while (rightmost.right != null) {
rightmost = rightmost.right;
}
}
if (rightmost != null) { // root or root.lchild is null
// found
}
您也應該檢查是否'rightmost.right'不是'null'之前爲它分配。 –
1.'root'可以是'null'; 2.'root.lchild'可以是'null'。 – dasblinkenlight
編輯完成後,您應該沒有問題(假設您的狀態下'root.lchild'不是'null')。 –