возможно четыре вызова метода
(maxDepth(root.left)+1) > (maxDepth(root.right)+1 ) ?
(maxDepth(root.left)+1):(maxDepth(root.right)+1)
Здесь вы вызываете метод maxDepth 4 раза, что неэффективно.
Расчеты для root.left и root.right - это дублированные рекурсивные вызовы, которые не нужны. Постарайтесь продумать и оптимизировать свое решение, сократив количество вызовов методов, и это сделает ваш код гораздо быстрее.
Ваш второй фрагмент кода включает только 2 рекурсивных вызова метода, что делает его более эффективным решением.
Вы даже можете использовать гораздо более простое решение:
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;