学习红黑树知识点不清楚的,能够参考这篇博文红黑树原理以及插入、删除算法 附图例说明。算法
由于删除操做比插入操做较难理解,须要处理的状况比较多,便于简单记忆,及快速了解删除操做,特此发博文,三句话说清楚红黑树的删除该如何处理,基本上按照这三句话的操做,本身模拟一下,就会大概清楚红黑树如何删除节点的了。学习
三句话对应三种删除处理动做(三种状况可交叉组合处理):.net
删除节点的值与前驱或后继节点的值交换(原位置颜色不变)blog
- 再进行AVL调整,再颜色变化(AVL调整后,把删除节点设为红色,再往上调整颜色)
- 删除节点所在位置为红色,则直接删除
- 不须要AVL调整,则设置与删除节点的值所在层为红色,再向上调整颜色