難度:簡單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()
詳細介紹