/**
* 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.
*/
public class S111 {
public static void main(String[] args) {
}
public int minDepth(TreeNode root) {
if(root == null){
return 0;
}
int minLeft = minDepth(root.left);
int minRight = minDepth(root.right);
if(minLeft!=0 && minRight!=0){ // 还没到叶子节点,可以往左右继续走
return 1 + Math.min(minLeft, minRight);
}else if(minLeft != 0){ // 还没到叶子节点,可以往左继续走
return 1 + minLeft;
}else if(minRight != 0){ // 还没到叶子节点,可以往右继续走
return 1 + minRight;
}else{ // 到了叶子节点
return 1;
}
}
}