【发布时间】:2015-11-21 16:37:43
【问题描述】:
所以我有一个完全工作的二叉树,每个节点中存储的值如下:
public Node(Comparable data) {
this.data = data;
parent = null;
left = null;
right = null;
}
如果我想删除根并让左或右孩子成为根,我需要将根设置为左/右孩子,然后让父为空。
这种情况发生的唯一情况是当所有左侧节点都为空且根节点最小时,右侧也是如此。
这是我尝试过的,但它会引发 nullPointerException。
root = root.getLeft();
root.setParent(null);
我拥有所有必要的 getter 和 setter。
【问题讨论】:
-
可能旧根的左孩子为空。在这种情况下,您可以只检查而不调用 setter。在另一种可能的情况下,旧的根本身是空的,好吧,没什么可做的。
标签: java nullpointerexception binary-search-tree