Maximum Depth of Binary Tree
Problem
Given the
root
of a binary tree, return its maximum depth.A binary tree's maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
Example 1:
Input: root = [3,9,20,null,null,15,7] Output: 3
Example 2:
Input: root = [1,null,2] Output: 2
Pseudocode
simple dfs traversal
- if no node return
- recurse
- return + 1
Solution
var maxDepth = function (root) {
function walk(node) {
if (!node) {
return 0;
}
// pre
// recurse
let leftDepth = walk(node.left);
let rightDepth = walk(node.right);
// post
// this is the increment
return Math.max(leftDepth, rightDepth) + 1;
}
return walk(root);
};
Time and Space Complexity
Time
traverse trough all the child nodes to find the deepest node - O(N)
Total - O(N)
Space
maximum memory requirement for traversing a BT - O(height)
Total - O(height)
Last updated