题目描述:

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

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

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

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

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

算法实现:

  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 left = maxDepth(root.left)
  17. var right = maxDepth(root.right)
  18. return Math.max(left, right) + 1
  19. }
  20. };

思考:

最大深度等于左边深度和右边深度的较大值,知道这个,我们就可以利用递归求出左边和右边的深度,进而Math.max即可。

总结:

加强了对二叉树的理解。