Обход дерева O (n) .Проверка сортировки списка: O (n) . O (n) находится в O (n log n) .
В соответствии с тем, что вы сказали, часть слияния должна быть O (1) , а не O (n) , снова давая вам O (n) решение в целом: если левое поддерево является BST, а правое поддерево является BST, а левое подкорень меньше, чем root, а root не больше правого подкорня, тогдаэто дерево является BST:
T(n) = T(m) + T(n-m-1) + T(1) where m < n is the count of the left subtree
Плюс очевидная обработка пустых поддеревьев в крайнем случае.