本来我是在考虑floor和ceil的,你说没有一个具体的键值可供查找前驱和后继,我在想,临时执行一个插入操作不就可以了。但是,它没有左右子节点啊,那么前面讲的节点删除只在至少有一个节点的时候才能直接找到前驱和后继,但如果它没有左右节点呢,岂不是还是要和floor和ceil一样的考虑。
然后我是这样想的:
假设这个叶节点为p,如果它位于父节点的左节点,那么它沿右上角方向回去的遇到某一个节点是父节点的右节点,那么p就是这个祖父节点的后继,反过来,这个祖父节点就是p的前驱,找p的后继是相反的。问题是又怎么知道判断的节点是父节点的哪个节点