Leetcode刷题(第104题)——二叉树的最大深度

x33g5p2x  于2022-03-09 转载在 其他  
字(0.6k)|赞(0)|评价(0)|浏览(334)

一、题目

  1. 给定一个二叉树,找出其最大深度。
  2. 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
  3. 说明: 叶子节点是指没有子节点的节点。

二、示例

  1. 给定二叉树 [3,9,20,null,null,15,7],
  2. 3
  3. / \
  4. 9 20
  5. / \
  6. 15 7
  7. 返回它的最大深度 3

三、思路
这题应该采用深度优先遍历,并且在每一次遍历时,都应该记录当前的层数,然后和max进行比较。
四、代码

  1. /**
  2. * Definition for a binary tree node.
  3. * function TreeNode(val, left, right) {
  4. * this.val = (val===undefined ? 0 : val)
  5. * this.left = (left===undefined ? null : left)
  6. * this.right = (right===undefined ? null : right)
  7. * }
  8. */
  9. /**
  10. * @param {TreeNode} root
  11. * @return {number}
  12. */
  13. var maxDepth = function(root) {
  14. let max = 0
  15. if(!root) return max
  16. const dfs = (node, n) => {
  17. if(max < n) {
  18. max = n
  19. }
  20. if(node.left) dfs(node.left, n + 1)
  21. if(node.right) dfs(node.right, n + 1)
  22. }
  23. dfs(root, 1)
  24. return max
  25. };

五、总结

相关文章