C/C++教程

二叉树的最小深度,leetcode习题

本文主要是介绍二叉树的最小深度,leetcode习题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二叉树的最小深度

先说一下什么是最小深度

在这里插入图片描述

搞清楚了什么事最小深度,接下来写一下代码的实现

public class MinDepth {
    public int minDepth(TreeNode root){

        Deque<TreeNode> deque = new LinkedList<>();
        deque.offer(root);
        int depth = 0;
        while (!deque.isEmpty()){


            int size = deque.size();
            depth++;
            for (int i=0;i<size;i++){
                TreeNode node = deque.poll();
                //如果是叶子节点,直接返回深度
                if (node.left==null&&node.right==null){
                    return depth;
                }
                if (node.left != null) deque.offer(node.left);
                if (node.right != null) deque.offer(node.right);

            }

        }

        return depth;
    }
}

思路:
跟求最大深度唯一的不同就是多了一个对叶子节点的判断,如果判断到此节点为叶子节点,则立即返回深度。
这篇关于二叉树的最小深度,leetcode习题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!