Maximum Depth of Binary Tree (E)
题目
Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Note: A leaf is a node with no children.
Example:
Given binary tree [3,9,20,null,null,15,7]
,
3
/ \
9 20
/ \
15 7
return its depth = 3.
题意
求二叉树的最大深度。
思路
DFS或者BFS。
代码实现
Java
DFS
class Solution {
public int maxDepth(TreeNode root) {
return root == null ? 0 : Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
}
BFS
class Solution {
public int maxDepth(TreeNode root) {
Queue<TreeNode> q = new ArrayDeque<>();
int depth = 0;
if (root != null) {
q.offer(root);
}
while (!q.isEmpty()) {
depth++;
int size = q.size();
for (int i = 0; i < size; i++) {
TreeNode cur = q.poll();
if (cur.left != null) q.offer(cur.left);
if (cur.right!=null) q.offer(cur.right);
}
}
return depth;
}
}
JavaScript
/**
* @param {TreeNode} root
* @return {number}
*/
var maxDepth = function (root) {
return root ? Math.max(maxDepth(root.left), maxDepth(root.right)) + 1 : 0
}