删除二叉树的节点
来源:5-8 二分搜索树节点的删除(Hubbard Deletion)
慕设计6262276
2021-04-15
找到前驱和后继后,交换两个节点的键值和Val值也是可以的把
写回答
1回答
-
liuyubobobo
2021-04-15
可以。
但通常在算法学习中,对于链式结构的学习,我们都避免修改节点的值,而是靠操作 Node 完成。
一方面是因为,在面试问题中,很多时候考察的关键是如何处理“指向”。比如经典的链表反转问题,我们可以很容易地遍历链表内容,把遍历结果放到一个数组中,然后反向遍历数组,正向再遍历链表,对链表结果依次赋值。不过这不是大多数面试官想要的答案。
而在实际生产环境中,有的时候,我们可能因为权限原因,无法修改一个“结构体”内部的内容;有的时候,节点不是内存里的数据这么简单,比如是网络拓扑结构,我们只能修改指向;还有的时候,因为值是非常大的,所以交换值是耗时的,改变指向是性能最优的做法。
不过依然是,如果没有这些问题的话,这样做可以完成删除操作。
继续加油!:)
10
相似问题