LeetCode 559.二叉树的最大深度

时间:2021-01-09 01:11:11

1.题目:

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

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

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


示例 1:

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

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


2.代码:

/*
// 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;
        Queue<Node> queue = new LinkedList<>();
        queue.offer(root);
        int count=0;
        while(!queue.isEmpty()){
            int len = queue.size();
            for(int i=0; i<len; i++){
                
                Node node = queue.poll();
                List<Node> children = node.children;//n叉树,用的是孩子
                if(children==null || children.size()==0){
                    continue;
                }
                for(Node child:children){
                    if(child!=null){
                 queue.offer(child);
                    }
                    
                }
               
            }
            count++;//就是这一层遍历完后计数
        
        }
        return count;
        
    }
}