从BST中移除一个节点是比较复杂的问题,需要分好几种情况讨论. 如这篇文章,就讨论了删除节点 1.有无左右子树 2.只有右子树 3.只有左子树 三种情况. 一种简单些的思维是只考虑删除节点是否有右子树(因为第一个比删除节点大的节点可能出现在右子树,不会出现在左子树). 这里用Target表示删除节点,Parent表示删除节点的母节点. 1. 没有右子树 Parent.left / Parent.right = Target.left 2. 有右子树 1) 找到第一个比删除节点大的节点Node 2…