给定一个 N 叉树,找到其最大深度。

最大深度是指从根节点到最远叶子节点的最长路径上的节点总数。

N 叉树输入按层序遍历序列化表示,每组子节点由空值分隔(请参见示例)。

示例

示例 1:

输入:root = [1,null,3,2,4,null,5,6]
输出:3

示例 2:

输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
输出:5

题解

深度遍历n叉树,记录深度

  1. /**
  2. * // Definition for a Node.
  3. * function Node(val,children) {
  4. * this.val = val;
  5. * this.children = children;
  6. * };
  7. */
  8. /**
  9. * @param {Node|null} root
  10. * @return {number}
  11. */
  12. var maxDepth = function(root) {
  13. let n = 0
  14. let max = 0
  15. if (!root) {
  16. return 0
  17. }
  18. const run = node => {
  19. n++
  20. if (n > max) {
  21. max = n
  22. }
  23. if (node.children && node.children.length > 0) {
  24. for (let i = 0; i < node.children.length; i++) {
  25. run(node.children[i])
  26. n--
  27. }
  28. }
  29. }
  30. run(root)
  31. return max
  32. };

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-depth-of-n-ary-tree
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。