在第 7 行中,我得到 nullpointerException,我该如何解决这个问题?有什么想法吗?
private void updateHeights(BSTreeNode v) {
BSTreeNode u = v;
while (u != null) {
int bfc=updateNodeHeight(u);
u = u.parent;
if (bfc<=-2) {
if( getHeight(u.left.left) >= getHeight(u.left.right) ) { // Null Pointer Exception
u = rotateRight(u);
} else {
u=LR(u);
}
}
}
}
最佳答案
有两个可能的问题,以及尽可能多的解决方案。首先是在 getHeight() 中进行空检查,我认为这是根据您的编程风格完成的(有条件时检查)。这给 u.left 留下了可能的空指针问题。因此:
确保 u.left 不为 null,如下所示:
getHeight(u.left != null && ((u.left.left)>=getHeight(u.left.right))
关于java - AVL 树重新平衡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34430298/