LeetCode/rs/maximum-depth-of-binary-tree.rs
Matej Focko 94c49118db
ci(rs): add pre-commit hook for ‹rustfmt›
Signed-off-by: Matej Focko <mfocko@redhat.com>
2024-02-21 23:28:35 +01:00

38 lines
850 B
Rust

// 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::cell::RefCell;
use std::cmp;
use std::rc::Rc;
fn _max_depth(root: Option<Rc<RefCell<TreeNode>>>, depth: i32) -> i32 {
match root {
None => depth,
Some(node) => cmp::max(
_max_depth(node.borrow().left.clone(), depth + 1),
_max_depth(node.borrow().right.clone(), depth + 1),
),
}
}
impl Solution {
pub fn max_depth(root: Option<Rc<RefCell<TreeNode>>>) -> i32 {
_max_depth(root, 0)
}
}