我在编写用于从树中删除节点的代码时遇到了问题.
给定BST和键值,找到树中的键并删除它.
所以这是我的想法,首先,如果BST为零则返回nil,如果BST只有一个节点根,则返回nil.
然后,如果BST中的密钥与给定密钥匹配,请检查该节点具有的叶数.如果节点根本没有子节点,则从第一个前任(根)重新创建一个bst到该节点的最后一个前导,并共享不是前一个节点的所有其余数据.
如果节点有一个子节点,则将其视为没有子节点的节点,但只需将子节点添加到最后一个节点.
因为节点有两个孩子,我必须找到一些没有任何子节点的节点来替换它们的位置.
在编写代码时出现了困难的部分,我现在不知道如何重新创建和共享树的数据.
有人可以提供一些提示或线索吗?