【Leetcode 111】js 二叉樹的最小深度
阿新 • • 發佈:2021-02-04
技術標籤:資料結構與演算法資料結構二叉樹演算法leetcodejavascript
4.2 二叉樹的最小深度
題目
給定一個二叉樹,找出其最小深度。
最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。
說明: 葉子節點是指沒有子節點的節點。
示例:
給定二叉樹 [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
返回它的最小深度 2
思路
深度優先+分治
- 左右子樹不為空:左右子樹深度和右子樹深度最小值+1
- 左子樹為空:右子樹深度最小值+1
- 右子樹為空:左子樹深度最小值+1
程式碼
/* 思路 遞迴
1.功能:求最小深度
2.出口 root空 return 0
3.等價表示式
左子樹空 return 右子樹最小深度+1
右子樹空 return 左子樹最小深度+1
左右子樹均不空 return 左子樹、右子樹最小深度的最小值+1 */
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;
};
更多資料
整理不易,若對您有幫助,請給個「關注+點贊」,您的支援是我更新的動力