解题思路:
bfs或dfs
提交代码:bfs
class Solution {
public int maxDepth(TreeNode root) {
if(root==null) return 0;
int res=0;
Queue<TreeNode> q1=new LinkedList<>();
Queue<TreeNode> q2=new LinkedList<>();
q1.add(root);
while(q1.size()!=0||q2.size()!=0) {
while(q1.size()>0) {
TreeNode tmp=q1.poll();
if(tmp.left!=null)
q2.add(tmp.left);
if(tmp.right!=null)
q2.add(tmp.right);
}
if(q2.size()!=0) res++;
List<Integer> level2=new ArrayList<>();
while(q2.size()>0) {
TreeNode tmp=q2.poll();
level2.add(tmp.val);
if(tmp.left!=null)
q1.add(tmp.left);
if(tmp.right!=null)
q1.add(tmp.right);
}
if(q1.size()!=0) res++;
}
return res+1;
}
}
运行结果:
提交代码:bfs
class Solution {
public int maxDepth(TreeNode root) {
if(root==null) return 0;
if(root.left==null&&root.right==null) return 1;
return Math.max(maxDepth(root.left)+1, maxDepth(root.right)+1);
}
}
运行结果: