TreeNode node8=new TreeNode(8,null,null);
TreeNode node7=new TreeNode(7,null,null);
TreeNode node6=new TreeNode(6,node7,null);
TreeNode node5=new TreeNode(5,null,null);
TreeNode node4=new TreeNode(4,null,node8);
TreeNode node3=new TreeNode(3,node6,null);
TreeNode node2=new TreeNode(2,node4,node5);
TreeNode node1=new TreeNode(1,node2,node3);
System.out.println(maxDepth(node1));
System.out.println(minDepth(node1));
}
private static int minDepth(TreeNode root) {
if (root==null)return 0;
if (root.left==null&&root.right==null)return 1;
int minDepth=Integer.MAX_VALUE;
if (root.left!=null){
minDepth=Math.min(minDepth(root.left),minDepth);
}
if (root.right!=null){
minDepth=Math.min(minDepth(root.right),minDepth);
}
return minDepth+1;
}
private static int maxDepth(TreeNode root) {
if (root==null)return 0;
if (root.left==null&&root.right==null)return 1;
int maxDepth=Integer.MIN_VALUE;
if (root.left!=null){
maxDepth=Math.max(minDepth(root.left),maxDepth);
}
if (root.right!=null){
maxDepth=Math.max(minDepth(root.right),maxDepth);
}
return maxDepth+1;
}
13.求二叉树最大最小深度
最新推荐文章于 2024-09-24 18:08:52 发布