力扣之111. 二叉树的最小深度

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

返回它的最小深度 2.

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var minDepth = function (root) {
    if (root == null) return 0;
    let depth = 1;
    const bfs = (treeNode) => {
        const queue = [treeNode];
        while (queue.length) {
            queueLength = queue.length; // 拿出来的意思是后面的push影响循环次数,导致变为深搜
            for (let i = 0; i < queueLength; i++) {
                let node = queue.shift();
                if (node.left == null && node.right == null) {
                    return depth;
                }
                if (node.left) queue.push(node.left);
                if (node.right) queue.push(node.right);
            }
            depth++;
        }
    }
    return bfs(root);
};
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页