Maximum Depth of Binary Tree
LeetCode 104 · View on LeetCode
Classic recursive DFS. The depth of a tree is 1 + the maximum depth of its subtrees. Base case: an empty node has depth 0.
class TreeNode:
def __init__(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
def max_depth(root: TreeNode | None) -> int:
if not root:
return 0
return 1 + max(max_depth(root.left), max_depth(root.right))
if __name__ == '__main__':
tree1 = TreeNode(3, TreeNode(9), TreeNode(20, TreeNode(15), TreeNode(7)))
print(max_depth(tree1)) # 3
tree2 = TreeNode(1, None, TreeNode(2))
print(max_depth(tree2)) # 2
print(max_depth(None)) # 0