这个题本质上和二叉树的最大深度差不多,本来想用深度优先解决,可是写着写着成了回溯。
class Solution {
int result_deep=0;
public int maxDepth(Node root) {
// 深度优先,层次遍历
// 嗯,好好的深度优先 写着写着成了回溯
int path=0;
dfs(root,path);
return result_deep;
}
public void dfs(Node root, int path){
if(root==null){
return ;
}
if (root.children!=null){
List<Node> root_children=root.children;
path++;
result_deep=Math.max(path,result_deep);
for(Node node:root_children){
dfs(node,path);
}
path--;
}
}
}
网友评论