每天一道算法題(十七)

二叉樹的最小深度

最小深度是從根節點到最近葉子節點的最短路徑上的節點數量。

說明: 葉子節點是指沒有子節點的節點。

示例:

給定二叉樹 [3,9,20,null,null,15,7],
在這裏插入圖片描述
返回它的最小深度 2.

採用遞歸的方法去找尋每個節點,記錄深度。

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var minDepth = function(root) {
    if(!root){
      return 0
    }
    if(root.left&&root.right){
      var leftMax = minDepth(root.left)+1
      var rightMax = minDepth(root.right)+1
      return leftMax<rightMax?leftMax:rightMax
    }else if(root.left){
      return minDepth(root.left)+1
    }else if(root.right){
      return minDepth(root.right)+1
    }else{
      return 1
    }
};

執行用時 :100 ms

內存消耗 :37.9 MB

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章