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.
AC代码:import java.util.ArrayList;
public class Solution {
public int minDepth(TreeNode root) {
if( root == null ) return 0;
ArrayList<TreeNode> lastLevel = new ArrayList<TreeNode>();
int count = 1;
lastLevel.add(root);
while( !lastLevel.isEmpty() ){
ArrayList<TreeNode> nextLevel = new ArrayList<TreeNode>();
for( TreeNode treenode:lastLevel ){
if( treenode.left == null && treenode.right == null ) return count;
if( treenode.left != null ) nextLevel.add(treenode.left);
if( treenode.right != null ) nextLevel.add(treenode.right);
}
count++;
lastLevel = new ArrayList<TreeNode>(nextLevel);
}
return count;
}
}