1. 程式人生 > 其它 >【Leetcode 111】js 二叉樹的最小深度

【Leetcode 111】js 二叉樹的最小深度

技術標籤:資料結構與演算法資料結構二叉樹演算法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; };

image-20210119150654319

更多資料

整理不易,若對您有幫助,請給個「關注+點贊」,您的支援是我更新的動力