Minimum Depth of Binary Tree
Sergei Golitsynhttps://leetcode.com/problems/minimum-depth-of-binary-tree/
Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node.
Note: A leaf is a node with no children.
Example 1:

Input: root = [3,9,20,null,null,15,7] Output: 2
Example 2:
Input: root = [2,null,3,null,4,null,5,null,6] Output: 5
Solution:
Again we have a binary tree. And we want to find min depth. How can we do it? We can find the min depth of the left subtree and then find the depth of the right subtree, compare them and return the min one. Is it easy?
public int minDepth(TreeNode root) {
if(root == null){
return 0;
}
int left = minDepth(root.left);
int right = minDepth(root.right);
if (left == 0 && right == 0){
return 1;
}
if (left == 0){
return right + 1;
}
if (right == 0){
return left + 1;
}
return Math.min(left, right) + 1;
}