【LeetCode】【HOT】104. 二叉树的最大深度
package hot;
import java.util.LinkedList;
import java.util.Queue;
class TreeNode{
int val;
TreeNode left;
TreeNode right;
TreeNode(int val){
this.val = val;
}
}
public class Solution104 {
public static void main(String[] args) {
TreeNode node1 = new TreeNode(3);
TreeNode node2 = new TreeNode(9);
TreeNode node3 = new TreeNode(20);
TreeNode node4 = new TreeNode(15);
TreeNode node5 = new TreeNode(7);
node1.left = node2;
node1.right = node3;
node3.left = node4;
node3.right = node5;
Solution104 solution = new Solution104();
System.out.println(solution.bfs(node1));
System.out.println(solution.recur(node1));
}
private int bfs(TreeNode root){
int res = 0;
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while(!queue.isEmpty()){
for(int i = queue.size(); i > 0; i--){
TreeNode node = queue.poll();
if(node.left != null) queue.offer(node.left);
if(node.right != null) queue.offer(node.right);
}
res++;
}
return res;
}
private int recur(TreeNode root){
if(root == null) return 0;
return Math.max(recur(root.left), recur(root.right)) + 1;
}
}