删除左右子节点都存在的节点

来源:6-12 删除二分搜索树的任意元素

Baul_Xu

2023-07-01

老师,删除左右子节点都存在的节点这种情况,是不是可以把待删除节点的左子树整体挂在右子树中最小值节点的左节点上?对应ppt中就是60代替58,50作为59的子子树。
图片描述

写回答

1回答

liuyubobobo

2023-07-02

赞!可以的。


但这样做,整棵树的高度可能会急剧升高:右子树的高度可能变成左右子树高度和。


而课程中介绍的 Hibbard Deletion,整个树的高度不会上升。


不过即便如此,BST 也会退化(比如有序添加所有元素),所以在这里不考虑这一点也没有关系。在介绍平衡二分搜索树的时候,会研究如何维护整棵树的平衡。


继续加油!:)

1
1
Baul_Xu
感谢老师的回答,感觉距离编程大神又进了一步 : )
2023-07-02
共1条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1705 问题

查看课程