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