代码实现:
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(minDepth(node1));
}
public static int minDepth(TreeNode root){
if (root == null){
return 0;
}
if (root.left == null && root.right == null){
return 1;
}
int min = Integer.MAX_VALUE;
if (root.left != null){
min = Math.min(minDepth(root.left),min);
}
if (root.right != null){
min = Math.min(minDepth(root.right),min);
}
return min + 1;
}
}
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int val, TreeNode left, TreeNode right){
this.val = val;
this.left = left;
this.right = right;
}
}
以上代码实现的二叉树如下:
思路:
- 叶子节点深度为1
- 找到当前节点下的最小的深度
- 返回最小深度+1(即当前节点)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)