1. 程式人生 > >104. 二叉樹的最大深度(JavaScript)

104. 二叉樹的最大深度(JavaScript)

給定一個二叉樹,找出其最大深度。

二叉樹的深度為根節點到最遠葉子節點的最長路徑上的節點數。

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

示例:
給定二叉樹 [3,9,20,null,null,15,7]

    3
   / \
  9  20
    /  \
   15   7

返回它的最大深度 3 。

思路:

採用遞迴,如果當前節點為空,返回0,如果不為空,返回 1 + 左右子節點的最大深度。

/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {number}
 */
var maxDepth = function(root) {
  if (root === null) {
    return 0;
  } else {
    var leftDepth = maxDepth(root.left),
        rightDepth = maxDepth(root.right);
    var childDepth = leftDepth > rightDepth ? leftDepth : rightDepth;
    return 1 + childDepth;
  }
};