'''Node''' maxroot(Tree[n]: '''Node''') <font color="green">// Tree — заданное двоичное дерево.</font>
'''boolint''' check2kol(v: '''Node''') '''if''' v == ''null'' v.min = <tex> -\infty </tex> v.max = <tex> \infty </tex> '''return''' ''true''0 '''else''' v.min = v.left.min v.max = v.right.max '''if''' v.min < v.key '''and''' v.max > v.key '''and''' check2kol(v.left) !== ''true'' -1 '''and''' check2kol(v.right) !=-1 v.kol = v.left.kol + v.right.kol + 1 '''trueelse''' '''return''' ''true''-1
Время выполнения работы алгоритма {{---}} <tex>O(n)</tex>.