题目
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.For example, given a 3-ary tree:假装是个图We should return its max depth, which is 3.Note:The depth of the tree is at most 1000.
The total number of nodes is at most 5000.
图在这
代码
通过递归的思想,对子节点进行不同的处理
/* // Definition for a Node. class Node {public int val;public List<Node> children;public Node() {}public Node(int _val,List<Node> _children) {val = _val;children = _children;} }; */
class Solution {public int maxDepth(Node root) {if(root == null){return 0;}else{return deep(root,1);}}public static int deep(Node root ,int d){List<Node> childer = root.children;int size=childer==null?0:childer.size();if(size==0){return d;}else{int [] tag = new int[size];for(int i=0;i<size;i++){Node x = childer.get(i);tag[i] = deep(x,d+1);}int max = 0;for(int i=0;i<size;i++){if(tag[i]>tag[max]){max = i;}}return tag[max];}}
}