给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明: 叶子节点是指没有子节点的节点
public class MinDeepTree {
public static void main(String[] args) {
TreeNode treeNode=new TreeNode(1);
TreeNode treeNode1=new TreeNode(7);
TreeNode treeNode2=new TreeNode(9);
treeNode.left=treeNode1;
treeNode.right=treeNode2;
System.out.println(mindeep(treeNode));
}
public static int mindeep(TreeNode treeNode){
int deep=0;
treeNode.val=1;
Queue queue=new LinkedList();
queue.add(treeNode);
while (!queue.isEmpty()){
TreeNode t= (TreeNode) queue.poll();
deep=t.val;
if (t.left==null&&t.right==null){
break;
}
deep++;
if (t.left!=null){
TreeNode left=t.left;
left.val=t.val+1;
queue.add(left);
}
if (t.right!=null){
TreeNode right=t.right;
right.val=t.val+1;
queue.add(right);
}
}
return deep;
}
}