The max depth of a binary tree
December 2, 2024Less than 1 minute
The max depth of a binary tree
DFS
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
} else {
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
}
BFS
public int maxDepthWithQueue(TreeNode root) {
if (root == null) {
return 0;
}
Queue<TreeNode> queue = new LinkedList<TreeNode>();
queue.offer(root);
int depth = 0;
while (!queue.isEmpty()) {
/*size用来记录本层级的结点是否已经处理完*/
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--;
}
depth++;
}
return depth;
}
Time Complexity: O(n) for both