При удалении корня (который сам по себе является листом) в дереве одного узла мне нужно изменить корневой узел как ничто. Я не хочу получить пустой узел self.value = self.left = self.right = None.Настройка корневого узла дерева на None
Я попытался установить self = None, как показано в приведенном ниже коде, но он не работает по какой-либо причине, и удаление (del self) не работает. Его легко удалить листья, потому что вам нужно только установить previous.right = None или previous.left = None и thats it. Но нет никакой ссылки на корень, очевидно, чтобы помочь в этом случае.
Возможно ли изменить тип корня из двоичного узла и сделать его Нет или даже целое или такое? Потому что, как вы видите в коде, настройка самостоятельно не работает
class BinaryNode:
def __init__(self, value, left = None, right = None):
'''
Initiate a Binary-tree
:param value: float | int | str
:return: None
'''
self.value = value
self.left = left
self.right = right
def delete_root(self):
'''
Delete the root of the tree
:return: None
'''
if not(self.right or self.left): #Base case: the root is childless
self = None #Doesnt work!!!
else:
self.left.get_max() #get_max is a method that replaces the root with a leaf