删除操作:
二叉树的删除操作:
若要删除值’5’节点,我们一般不是直接摘除’5’节点,而是将4或者6的赋值给’5’节点,然后再删除’4’节点或者‘6’节点,也就是将根节点的删除改为删除叶子节点和有一个子节点的节点。直接摘除5会增加许多不必要的指针操作。
复习一下,常规删除操作:
- 叶子节点直接删除
- 删除节点有一个子节点,直接使用子节点替代
- 如果被删除节点有两个子节点,使用前驱或后继节点来替代被删除节点。
被删除的前驱节点和后继节点只有两种情况:
- 被删除节点是叶子节点。
- 被删除节点只有一个孩子。
由于被删除节点只有以上两种情况,因此红黑树上的删除节点一定是2-3-4树的叶子节点。故红黑树要删除的节点是叶子节点或叶子节点