Я думаю, что есть две разные фазы: сначала вы создаете пустое двоичное дерево, добавляете элементы (некоторые отбрасываются из-за дупов или что? Как они стали 16 из 20?). Затем вы удаляете некоторые элементы, и вам нужно знать высоту после этого удаления?
Чтобы получить высоту, вы можете использовать простую рекурсивную функцию, просто подумайте, что высота общего неконечного узла - это максимум между дочерними высотами + 1 ..