我正在用remove方法实现二进制搜索树,但是对于不同的场景以及如何使用该方法的唯一参数作为搜索关键字来取消引用已删除的节点感到困惑。到目前为止,如果删除节点是根节点,我就知道了,但是我不确定它是否正确,或者不确定如何删除作为子节点的节点。有没有人可以看我的代码以了解如何执行此操作?谢谢!
public void remove(String key) {
Node mainNode = root;
Node child;
if(key.compareTo(mainNode.key) == 0) {
child = mainNode.left;
mainNode = mainNode.right;
mainNode.left = child;
}
}