rs: add “104. Maximum Depth of Binary Tree”
Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
parent
be4de17b4d
commit
0c96d36b10
1 changed files with 38 additions and 0 deletions
38
rs/maximum-depth-of-binary-tree.rs
Normal file
38
rs/maximum-depth-of-binary-tree.rs
Normal file
|
@ -0,0 +1,38 @@
|
|||
// 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::cmp;
|
||||
use std::cell::RefCell;
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue