1. 题目描述

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

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

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

示例:
给定二叉树 [3,9,20,null,null,15,7],

  1. 3
  2. / \
  3. 9 20
  4. / \
  5. 15 7

返回它的最大深度 3 。

2. 解题思路

当节点为空的时候,就返回0,节点不为空时,就对左右字数分别递归遍历,分别求出左右子树的最大高度,则该树的最大高度是左右字数中高度的最大值。

3. 代码实现

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val) {
  4. * this.val = val;
  5. * this.left = this.right = null;
  6. * }
  7. */
  8. /**
  9. * @param {TreeNode} root
  10. * @return {number}
  11. */
  12. var maxDepth = function(root) {
  13. if(!root){
  14. return 0;
  15. }else{
  16. var leftDepth = maxDepth(root.left)
  17. var rightDepth = maxDepth(root.right)
  18. return Math.max(leftDepth,rightDepth)+1
  19. }
  20. };

4. 提交结果

104. 二叉树的最大深度 - 图1