难度:简单bash
涉及知识:树、深度优先搜索、广度优先搜索函数
题目地址:https://leetcode-cn.com/problems/minimum-depth-of-binary-tree/ui
题目内容:spa
给定一个二叉树,找出其最小深度。
最小深度是从根节点到最近叶子节点的最短路径上的节点数量。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
返回它的最小深度 2.
复制代码
题目给定用例 [1,2,8,3,4,5,6,7]
输入方法的root元数据:
let root = {
val: 1,
left: {
val: 2, left: null, right: null
},
right: {
val: 3,
left: {
val: 4, left: null, right: {
val: 5,
left: {
val: 6, left: null, right: null
},
right: {
val: 7, left: null, right: null
}
},
},
right: {
val: 8, left: null, right: null
}
}
};复制代码
var minDepth = function (root) {
if (!root) {
return 0;
}
//先遍历全部子节点,并比对各条路进行比对
if (!root.left) {
return minDepth(root.right) + 1;
}
if (!root.right) {
return minDepth(root.left) + 1;
}
return Math.min(minDepth(root.left), minDepth(root.right)) + 1;
}复制代码
执行用时 :76 ms, 在全部 JavaScript 提交中击败了99.10%的用户内存消耗 :37.1 MB, 在全部 JavaScript 提交中击败了66.05%的用户复制代码
Math
:JS 中的内置对象,具备数学常数和函数的属性和方法。Math.min()
详细介绍