开局之前
二叉树可以使用二分的思想来查询,虽然跳表也可以但是跳表占用的空间大
思考
https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/submissions/
可以使用递归来做
class Solution {
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right) )+1;
}
}
使用层序遍历 一层一层的遍历
public int maxDepth(TreeNode root) {
if(root==null){
return 0;
}
Queue<TreeNode> queue = new LinkedList();
queue.add(root);
int res = 0;
while(!queue.isEmpty()){
int tmpLength = queue.size();
List<Integer> list = new ArrayList();
//内层循环把这层的元素都取出来
for(int i = 0;i<tmpLength;i++){
TreeNode node = queue.poll();
list.add(node.val);
if(node.left!=null){
queue.add(node.left);
}
if(node.right!=null){
queue.add(node.right);
}
}
res++;
}
return res;
}