В настоящее время я изучаю BST и записываю различные функции, такие как поиск вставки. Я наткнулся на интересный вопрос о задании программирования и попросил написать функцию, которая проверит, завершен ли bst.Binary Tree - Complete
Так что я понимаю, что BST завершен, если все листья заканчиваются на том же уровне.
Мой возможный подход для этого решения
я понял, что высоту правого и левого узлов должны быть одинаковыми, если листья под них заканчиваются на том же уровне. поэтому могу ли я сделать простую проверку, чтобы увидеть, соответствует ли высота правого под дерева таким же, как левое поддерево, и если это тогда, то это должно указывать мне, что дерево BST завершено. Может ли кто-нибудь подтвердить правильность моего подхода или предложить другие возможные подходы? Я не ищу код, просто хочу работать над своим пониманием и подходом.
Число узлов = 2^n - 1 – stark