Closed
Description
请教两个问题,谢谢
一、 “删除只有一个孩子的节点时,只要把它的父亲指向它的孩子”,这里貌似有问题,例如:
root的key为60,左孩子为10,右孩子为70,然后70的左孩子为30
若删除70这个节点,则按上述规则30将会成为60的右孩子,不符合bst特性
二、 删除两个孩子的节点时,代码是这么写的:
successor_node = self._bst_min_node(subtree.right)
subtree.key, subtree.value = successor_node.key, successor_node.value
subtree.right = self._bst_remove(subtree.right, successor_node.key)
既然是互换了两个节点,为什么要最后一行给互换后节点的右孩子再去赋值?是否直接self._bst_remove(subtree.right, successor_node.key)就可以了?
Metadata
Metadata
Assignees
Labels
No labels