• leetcodebfs111


    
    /**
    <p>给定一个二叉树,找出其最小深度。</p>
    
    <p>最小深度是从根节点到最近叶子节点的最短路径上的节点数量。</p>
    
    <p><strong>说明:</strong>叶子节点是指没有子节点的节点。</p>
    
    <p> </p>
    
    <p><strong>示例 1:</strong></p>
    <img alt="" src="https://assets.leetcode.com/uploads/2020/10/12/ex_depth.jpg" style=" 432px; height: 302px;" />
    <pre>
    <strong>输入:</strong>root = [3,9,20,null,null,15,7]
    <strong>输出:</strong>2
    </pre>
    
    <p><strong>示例 2:</strong></p>
    
    <pre>
    <strong>输入:</strong>root = [2,null,3,null,4,null,5,null,6]
    <strong>输出:</strong>5
    </pre>
    
    <p> </p>
    
    <p><strong>提示:</strong></p>
    
    <ul>
    	<li>树中节点数的范围在 <code>[0, 10<sup>5</sup>]</code> 内</li>
    	<li><code>-1000 <= Node.val <= 1000</code></li>
    </ul>
    <div><div>Related Topics</div><div><li>树</li><li>深度优先搜索</li><li>广度优先搜索</li><li>二叉树</li></div></div><br><div><li> 784</li><li> 0</li></div>
    */
    
    //leetcode submit region begin(Prohibit modification and deletion)
    
    
    import java.util.LinkedList;
    import java.util.Queue;
    
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode() {}
     *     TreeNode(int val) { this.val = val; }
     *     TreeNode(int val, TreeNode left, TreeNode right) {
     *         this.val = val;
     *         this.left = left;
     *         this.right = right;
     *     }
     * }
     */
    class Solution {
        //普通的bfs
        public int minDepth(TreeNode root) {
            if (root == null) {
                return 0;
            }
    
            Queue<TreeNode> queue = new LinkedList<>();
            queue.offer(root);
    
            int depth = 1;
            while (!queue.isEmpty()) {
                int size = queue.size();
                for (int i = 0; i < size; i++) {
                    TreeNode poll = queue.poll();
                    if(poll.left==null && poll.right==null){
                        return depth;
                    }
    
                    if (poll.left != null) {
                        queue.offer(poll.left);
                    }
                    if (poll.right != null) {
                        queue.offer(poll.right);
                    }
                }
                depth++;
            }
            return depth;
        }
    }
    //leetcode submit region end(Prohibit modification and deletion)
    
    
  • 相关阅读:
    PHP 操作MySQL时mysql_connect( )和Mysqli( )的两种报错机制
    OS + macOS Mojave 10.14.4 / sushi / ssh-keygen / ssh-copy-id
    script ajax / XHR / XMLHttpRequest
    java socket / No buffer space available
    OS + Ubuntu ARM Android
    mysql中批量替换数据库中的内容的sql
    linux下ubuntu系统安装及开发环境配置
    PHP 截取字符串专题
    在Ubuntu中用root帐号登录
    理解javascript的caller,callee,call,apply概念
  • 原文地址:https://www.cnblogs.com/xiaoshahai/p/16426117.html
Copyright © 2020-2023  润新知