解题思路
用dfs遍历并记录每个地方的深度,然后取最大值
代码
/**
public class TreeNode {
int val = 0;
TreeNode left = null;
TreeNode right = null;
public TreeNode(int val) {
this.val = val;
}
}
*/
import java.util.ArrayList;
import java.util.*;
public class Solution {
public int TreeDepth(TreeNode root) {
int deep = 0,max=0;
List<Integer> ans = new ArrayList<>();
dfs(deep,root,ans);
Collections.sort(ans);
if (ans.size()==0){
return 0;
}
return ans.get(ans.size()-1);
}
public void dfs(int deep,TreeNode root,List<Integer> ans){
if (root!=null){
deep++;
ans.add(deep);
if (root.left!=null){
dfs(deep,root.left,ans);
}
if (root.right!=null){
dfs(deep,root.right,ans);
}
}
}
}