Я пытался решить вопрос об удалении узла в BST и увидел странный результат. В случае, когда у узла есть только правый дочерний элемент, я пытался удалить этот узел и вернуть его правого дочернего элемента. Каким-то образом оба приведенных ниже кода дали правильный результат, хотя мне кажется, что только код 1 должен работать, поскольку мы пытаемся получить доступ к удаленному узлу.
Может кто-нибудь сказать мне, почему это происходит?
cpp
Код 1:
Node* temp = root->right;
delete root;
return temp;
Код 2:
Node* temp = root;
delete temp;
return root->right;
Подробнее здесь: https://stackoverflow.com/questions/782 ... ight-child