力扣算法07——二叉树的最小深度(深度优先)

力扣算法07——二叉树的最小深度(深度优先),第1张

 

 代码实现:
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
  2. 找到当前节点下的最小的深度
  3. 返回最小深度+1(即当前节点)

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/799375.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-06
下一篇 2022-05-06

发表评论

登录后才能评论

评论列表(0条)

保存