Algorithm
Problem Name: 559. Maximum Depth of N-ary Tree
Given a n-ary 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.
Nary-Tree input serialization is represented in their level order traversal, each group of children is separated by the null value (See examples).
Example 1:
Input: root = [1,null,3,2,4,null,5,6] Output: 3
Example 2:
Input: 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] Output: 5
Constraints:
- The total number of nodes is in the range
[0, 104]
. - The depth of the n-ary tree is less than or equal to
1000
.
Code Examples
#1 Code Example with Java Programming
Code -
Java Programming
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
int max = Integer.MIN_VALUE;
for (Node child : root.children) {
max = Math.max(max, maxDepth(child));
}
return 1 + Math.max(max, 0);
}
}
Copy The Code &
Try With Live Editor
Input
Output
#2 Code Example with Javascript Programming
Code -
Javascript Programming
const maxDepth = function(root) {
let max = 0
if(root == null) return 0
function dfs(node, depth) {
if(node == null || node.children.length === 0) {
depth++
if(depth > max) max = depth
return
}
depth++
for(let n of node.children) {
dfs(n, depth)
}
}
dfs(root, 0)
return max
};
Copy The Code &
Try With Live Editor
Input
Output
#3 Code Example with C# Programming
Code -
C# Programming
using System;
using System.Collections.Generic;
namespace LeetCode
{
public class _0559_MaximumDepthOfNAryTree
{
public int MaxDepth(Node root)
{
if (root == null) return 0;
var max = 0;
foreach (var child in root.children)
max = Math.Max(max, MaxDepth(child));
return max + 1;
}
public class Node
{
public int val;
public IList < Node> children;
public Node() { }
public Node(int _val)
{
val = _val;
children = new List < Node>();
}
public Node(int _val, IList _children)
{
val = _val;
children = _children;
}
}
}
}
Copy The Code &
Try With Live Editor
Input
Output