improve BinaryTreeMaximumPathSum