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
}
}