Given a binary tree, find its minimum depth.
The minimum depth isthenumberof nodes along the shortest
path fromthe root node down tothe nearest leaf node.
Example
Given a binary tree as follow:
1
/ \
2 3
/ \
4 5
Solution
/**
* Definition of TreeNode:
* public class TreeNode {
* public int val;
* public TreeNode left, right;
* public TreeNode(int val) {
* this.val = val;
* this.left = this.right = null;
* }
* }
*/publicclassSolution {/**
* @param root: The root of binary tree
* @return: An integer
*/publicintminDepth(TreeNode root) {
// write your code hereif(root!=null){
int mindl = minDepth(root.left);
int mindr = minDepth(root.right);
int mind = 0;
//注意这里,和求最大深度不一样,如果左右子树有一棵为空,那么此时深度为非空的那棵子树的深度if(mindl==0||mindr==0) mind = mindl==0?mindr:mindl;
else{
mind = mindl>mindr?mindr:mindl;
}
return mind+1;
}else{
return0;
}
}
}