Skip to main content
Back to problems
#104
Easy Algorithms

Maximum depth of binary tree

Tree Depth-First Search Breadth-First Search Binary Tree
77.9% acceptance
Feb 27, 2026
14226
288
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.

Solution

Rust
Time O(n)
Space O(n)
LeetCode
solution.rs
// Definition for a binary tree node.
// #[derive(Debug, PartialEq, Eq)]
// pub struct TreeNode {
//   pub val: i32,
//   pub left: Option<Rc<RefCell<TreeNode>>>,
//   pub right: Option<Rc<RefCell<TreeNode>>>,
// }
// 
// impl TreeNode {
//   #[inline]
//   pub fn new(val: i32) -> Self {
//     TreeNode {
//       val,
//       left: None,
//       right: None
//     }
//   }
// }
use std::rc::Rc;
use std::cell::RefCell;
impl Solution {
  pub fn max_depth(root: Option<Rc<RefCell<TreeNode>>>) -> i32 {
    match root {
      None => 0,
      Some(node) => {
        let node_borrow = node.borrow();
        1 + Self::max_depth(node_borrow.left.clone()).max(Self::max_depth(node_borrow.right.clone()))
      }
    }
  }
}