给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明:叶子节点是指没有子节点的节点。
示例 1:
输入:root = [3,9,20,null,null,15,7]
输出:2
示例 2:
输入:root = [2,null,3,null,4,null,5,null,6]
输出:5
提示:
- 树中节点数的范围在 [0, 105] 内
- -1000 <= Node.val <= 1000
1 /** 2 * Definition for a binary tree node. 3 * function TreeNode(val, left, right) { 4 * this.val = (val===undefined ? 0 : val) 5 * this.left = (left===undefined ? null : left) 6 * this.right = (right===undefined ? null : right) 7 * } 8 */ 9 /** 10 * @param {TreeNode} root 11 * @return {number} 12 */ 13 var minDepth = function(root) { 14 if(!root) {return 0;} //把根结点传进去 15 const q = [[root,1]]; //队列 16 while(q.length) { //队列不为空的情况下 17 const [n,l] = q.shift(); 18 if(!n.left && !n.right) return l; 19 if(n.left) q.push([n.left,l+1]); 20 if(n.right) q.push([n.right,l+1]); 21 } 22 };