例如,给定树:
10
5 15
0 6 12 20 // full
-5 2 8 14 16 22
4 18 24
26
函数highestFull(BinaryNodeX<Comparable> *t)
返回的值为3,因为最深满级别的高度为3。
答案 0 :(得分:3)
如果某个节点没有左侧或右侧节点,您就知道最深的完整级别为1 - 节点本身。
如果它有左右节点,则递归并选择较小的节点。
highestFull(BinaryNodeX<Comparable> *t)
{
if ( ! t->left || ! t->right ) return 1;
return 1 + std::min( highestFull(t->left), highestFull(t->right) );
}