Я могу ошибаться, но код на указанном сайте выглядит нормально.Я не проверял это, однако.
Это правда, потому что функция удаления принимает один аргумент, который имеет тип узла BSTNode **.Это НЕ указатель на узел.Это указатель на указатель родительского узла на сам узел .Это может быть немного неаккуратно, но я должен признать, что после понимания того, что делает код, это элегантное в своем роде решение.Поэтому, когда вы переписываете (* узел), вы не переписываете сам узел , вместо этого вы переписываете указатель родительского узла на узел .По сути, код делает то, что вы предложили, слегка извращенным способом: D.Надеюсь, вы поняли, что я имел в виду, и надеюсь, я понял это правильно.
Я бы также рекомендовал вам прочитать подробнее о красно-черных деревьях, поскольку эта статья дает представление только о создании дерева, но описанная структура не имеет асимптотических границ для его высоты.Если, например, вы вставите отсортированные значения в эту структуру, это будет связанный список вместо сбалансированного дерева.