对 “待del节点[X]” 进行判断:
[场合①] 如果[x] is 叶子节点 ?
情况1:节点[X] is 红色? Del 即结束。
情况2:节点[X] is 黑色? Del后 ===>>> 双黑问题。
步骤1:值互换:{与其"中序遍历"的"后继结点Y"进行值交换}
步骤2:Del 互换后的节点[X]
(1)互换后的节点[X] is 非叶子节点 ?
====> Del后、将它的子节点提上来 且 变黑。
(2)互换后的节点[X] is 叶子节点 ?
====> 重复【场合①】过程
[场合①] 如果[x] is 叶子节点 ?
情况1:节点[X] is 红色? Del 即结束。
情况2:节点[X] is 黑色? Del后 ===>>> 双黑问题。
[场合②] 如果[x]is 非叶子节点 ?
步骤1:值互换:{与其"中序遍历"的"后继结点Y"进行值交换}
步骤2:Del 互换后的节点[X]
(1)互换后的节点[X] is 非叶子节点 ?
====> Del后、将它的子节点提上来 且 变黑。
(2)互换后的节点[X] is 叶子节点 ?
====> 重复【场合①】过程