
代码实现:
import java.util.LinkedList;
import java.util.Queue;
public class TreeDeep {
public static void main(String[] args) {
TreeNode node7 = new TreeNode(7,null,null);
TreeNode node6 = new TreeNode(7,node7,null);
TreeNode node5 = new TreeNode(7,null,null);
TreeNode node4 = new TreeNode(7,null,null);
TreeNode node3 = new TreeNode(7,node6,null);
TreeNode node2 = new TreeNode(7,node4,node5);
TreeNode node1 = new TreeNode(7,node2,node3);
System.out.println(minDepth2(node1));
}
public static int minDepth2(TreeNode root){
if (root == null){
return 0;
}
root.deep = 1;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()){
TreeNode node = queue.poll();
if (node.left == null && node.right == null){
return node.deep;
}
if (node.left != null){
node.left.deep = node.deep + 1;
queue.offer(node.left);
}
if (node.right != null){
node.right.deep = node.deep + 1;
queue.offer(node.left);
}
}
return 0;
}
}
class TreeNode{
int val;
TreeNode left;
TreeNode right;
int deep;
TreeNode(int val, TreeNode left, TreeNode right){
this.val = val;
this.left = left;
this.right = right;
}
}