Минимальная глубина бинарного дерева

Задача:

Дано: бинарное дерево. Найти: минимальную глубину, где минимальная глубина бинарного дерева - это количество нод на кратчайшем пути от корневой ноды до ближайшей листовой ноды.

Пример представления бинарного дерева:

/**
 * Definition for binary tree
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */

Решения на Java:

public static int minDepth(BinaryTree root) {
        if(root == null)    //base case
            return 0;
        if(root.left == null || root.right == null) {
            return 1 + (root.left == null ? minDepth(root.right) : minDepth(root.left));
        }
        return 1 + Math.min(minDepth(root.left), minDepth(root.right));
    }
}
LikeMe: