func deepest(node *TreeNode, level int) (subtree *TreeNode, deepestlevel int) {
    if node == nil {
        return nil, level
    }
    
    left, leftlevel := deepest(node.Left, level+1)
    right, rightlevel := deepest(node.Right, level+1)
    if leftlevel == rightlevel {  
        return node, leftlevel
    } else if leftlevel > rightlevel {
        return left, leftlevel
    } else {
        return right, rightlevel
    }
}
Comments (0)