4
fn dfs(root: &Option<Rc<RefCell<TreeNode>>>) -> (i32, Option<Rc<RefCell<TreeNode>>>) {7
let root_node = root_ref.borrow();9
let (left_height, left_tree) = Self::dfs(&root_node.left);10
let (right_height, right_tree) = Self::dfs(&root_node.right);12
if left_height > right_height {13
(left_height + 1, left_tree)14
} else if right_height > left_height {15
(right_height + 1, right_tree)17
(left_height + 1, root.clone())24
pub fn subtree_with_all_deepest(25
root: Option<Rc<RefCell<TreeNode>>>,26
) -> Option<Rc<RefCell<TreeNode>>> {