1.题目
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
示例1:

输入:root = [3,9,20,null,null,15,7]输出:2输入:root = [2,null,3,null,4,null,5,null,6]输出:5
2.思路
先来理解一下什么是二叉树的最小深度
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
当二叉树为null时,最小深度为0
当二叉树只有根节点时,最小深度为1
当二叉树有左右子树时,最小深度为左树与右树最小深度+1

(该图转载自:画解算法:111. 二叉树的最小深度)
我们直接遍历整颗树,递归的去求左右树的最小深度,然后返回左右树的最小深度+1的值
public int minDepth(TreeNode root) {
if(root == null){
return 0;
}
if (root.left == null){
return minDepth(root.right) + 1;
}
if (root.right == null){
return minDepth(root.left) + 1;
}
return Math.min(minDepth(root.left),minDepth(root.right)) + 1;
}
