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…
迎接关注我个人民众号:「一个不甘寻常的码农」,纪录了本身一起自学编程的故事。