输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。
例如:
给定二叉树 [1,5,28,null,null,10,7],
1
/ \
5 28
/ \
10 7
返回它的最大深度 3 。
public class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
class main{
LinkedList<List<Integer>> res = new LinkedList<>();
LinkedList<Integer> path = new LinkedList<>();//路径
public int Depth(TreeNode root) {
dfs(root);
int size=0;
for(List<Integer> list : res){
size=size>list.size()?size:list.size();
}
return size;
}
void dfs(TreeNode node){
if(node==null) return;
path.add(node.val);
if(node.left==null&&node.right==null){
res.add(new LinkedList(path));
}
dfs(node.left);
dfs(node.right);
path.removeLast();
}
}