力扣 559 N叉树的最大深度

在这里插入图片描述
在这里插入图片描述
   在讲这道题之前,先来说说二叉树的最大深度如何求。其实我们都知道二叉树的最大深度就是左右孩子中最大的长度加1,所以:

	 private int deep(TreeNode root) {
    
    
        if(null==root)
            return 0;
        //计算root节点的深度
        return Math.max(deep(root.right),deep(root.left))+1;
    }

这个递归遍历就是从最后的叶子结点一步一步往上反,所以需要返回值。在返回的过程中增加。
   现在我们就来说说N叉树的深度,同理,N叉树的深度就是所有孩子中最长的深度加1,在N叉树定义的时候就已经给了孩子数组,所以直接遍历孩子数组就可。从孩子中找到最大的,最后返回最大的加1

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;
    	int ans=0;
    	for(Node child:root.children) {
    
    
    		ans=Math.max(ans, maxDepth(child));
    	}
    	return ans+1;
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_51656756/article/details/121453032
今日推荐