二叉搜索树删除根节点后新根节点是什么?我的求解思路是否正确?
二叉搜索树根节点删除问题解答
- 新根节点确实是23,但你的思路不对,不需要先执行左右旋转操作。
- 普通二叉搜索树删除带有两个子树的节点时,常规做法是:找到该节点右子树的最小节点(或左子树的最大节点),用它的值替换要删除的节点,然后删除这个最小(或最大)节点。
- 回到这棵树:根节点20有左右子树,它的右子树最小节点就是23,且23是叶子节点(无后代)。直接用23替换20的位置,再删掉原来的23节点即可,整个过程不需要旋转。
- 旋转操作是AVL树、红黑树这类平衡二叉搜索树用来维持树的平衡才会用到的,普通二叉搜索树删除节点不需要这一步。
内容的提问来源于stack exchange,提问作者Ayham Jbara
相关产品推荐
相关产品推荐

