Leetcode 104二叉树的最大深度

时间:2020-08-19 07:03:53

标签: javascript

我正在审查此leetcode问题的解决方案。解决方法如下:

var maxDepth = function(root) {
  let maxNode = (node, sum) => {
    if (node === null) {
      return sum;
    }
    return Math.max(maxNode(node.left, sum + 1), maxNode(node.right, sum + 1));
  }
  return maxNode(root, 0);  
};

我想知道为什么return maxNode(root, 0);必须包含return。是否需要“激活”内部功能?如果是这样,为什么不只是maxNode(root, 0)就“激活”它呢?

3 个答案:

答案 0 :(得分:1)

解决方案包括“递归”,这意味着maxNode函数在其内部多次被调用。这需要maxNode函数向其调用的“实例”返回一个值。 maxDepth函数具有return语句,用于返回计算出的maxNode值。

答案 1 :(得分:1)

这是递归函数的另一种构造,它以sum作为递归的参数。

可以很容易地将其重写为以下函数,在函数调用之外添加一个。

var maxDepth = function(node) {
        if (!node) return 0;
        return 1 + Math.max(maxNode(node.left), maxNode(node.right));
    };

答案 2 :(得分:0)

此函数maxDepth将确定二叉树的最大深度。

您将像这样使用它:

let depth = maxDepth(treeRoot);

在没有return的情况下,该函数将确定深度,但是调用该函数时不会得到结果。