题目
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}
