leet-code/src/main/java/leetcode/editor/cn/MaximumDepthOfNAryTree.java

93 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//给定一个 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
//
//
//
//
// 提示:
//
//
// 树的深度不会超过 1000 。
// 树的节点数目位于 [0, 10⁴] 之间。
//
// Related Topics 树 深度优先搜索 广度优先搜索 👍 257 👎 0
package leetcode.editor.cn;
import com.code.leet.entiy.Node;
import java.util.Arrays;
//559:N 叉树的最大深度
public class MaximumDepthOfNAryTree {
public static void main(String[] args) {
Solution solution = new MaximumDepthOfNAryTree().new Solution();
Node root = new Node(Arrays.asList(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));
solution.maxDepth(root);
}
//leetcode submit region begin(Prohibit modification and deletion)
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public int maxDepth(Node root) {
if (root == null) {
return 0;
}
dfs(root, 0);
return max;
}
int max = 0;
private void dfs(Node root, int deep) {
deep++;
for (Node child : root.children) {
dfs(child, deep);
}
max = Math.max(max, deep);
}
}
//leetcode submit region end(Prohibit modification and deletion)
}