每天一道算法题(十七)

二叉树的最小深度

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

说明: 叶子节点是指没有子节点的节点。

示例:

给定二叉树 [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

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