LeetCode 之 JavaScript 解答第104题 —— 二叉树的最大深度

Time:2019/4/22
Title: Maximum Depth of Binary Tree
Difficulty: Medium
Author:小鹿

题目:Maximum Depth of Binary Tree(二叉树的最大深度)

Given a binary tree, find its maximum depth.

The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.

给定一个二叉树,找出其最大深度。

二叉树的深度为根节点到最远恭弘=叶 恭弘子节点的最长途径上的节点数。

申明: 恭弘=叶 恭弘子节点是指没有子节点的节点。

Note: A leaf is a node with no children.

Example:

Given binary tree [3,9,20,null,null,15,7],

    3
   / \
  9  20
    /  \
   15   7

return its depth = 3.

Solve:

▉ 题目剖析

求二叉树的最大深度,我们要知道树的深度怎样盘算的?

1)树的深度,深度,望文生义,从上到下,第一层为 1,每向下一层,深度 + 1。

2)视察上图,我们盘算时,只需纪录两个子树最深的结点为主。

3)求二叉树的深度,必定要用到递返来处理。

▉ 算法思绪

1)推断树是不是为 null。

2)离别递归摆布子树。

3)只盘算叠加计数(递归最深)最大的数字。

▉ 代码完成
var maxDepth = function(root) {
    // 假如根节点为 null 
    if(root === null) return 0;
    // 递归左子树
    let depthLeft  = maxDepth(root.left);
    // 递归右子树
    let depthRight  = maxDepth(root.right);
    // 将子题目兼并求总题目
    return Math.max(depthLeft,depthRight) + 1;
};

迎接一同加入到 LeetCode 开源 Github 堆栈,能够向 me 提交您其他言语的代码。在堆栈上对峙和小伙伴们一同打卡,配合完美我们的开源小堆栈!

Github:
https://github.com/luxiangqia…

迎接关注我个人民众号:「一个不甘寻常的码农」,纪录了本身一起自学编程的故事。

    原文作者:小鹿
    原文地址: https://segmentfault.com/a/1190000018991141
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞