Leetcode 二叉树的最大深度
Day 11 第二题
深度优先搜索
在计算当前二叉树的最大深度时,可以先递归计算出其左子树和右子树的最大深度,然后在 \(\mathcal{O}(1)\)时间内计算出当前二叉树的最大深度。
class Solution {
public int maxDepth(TreeNode root) {
if(root== null){
return 0;
}
int maxDepth = 1;
maxDepth += Math.max(maxDepth(root.left),maxDepth(root.right));
return maxDepth;
}
}
力扣官方题解:广度优先搜索
class Solution {
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
// 链表末尾增加元素
queue.offer(root);
int ans = 0;
while (!queue.isEmpty()) {
int size = queue.size();
while (size > 0) {
// 每来到一层,去除头节点
TreeNode node = queue.poll();
if (node.left != null) {
queue.offer(node.left);
}
if (node.right != null) {
queue.offer(node.right);
}
size--;
}
ans++;
}
return ans;
}
}