Suppose that $X$ is homotopy-equivalent to a one-point space, then each point of $X$ is a deformation retract of $X$.
This was my (failed) attempt to solve this problem.
Suppose that $X \simeq \{c\}$. Pick a point $p \in X$. We want to show that there exists a retract $r : X \to\{p\}$ such that for the map $i_{\{p\}} : \{p\} \to X$ defined by $i_{\{p\}} (p) = p$ we have $i_{\{p\}} \circ r \simeq \text{Id}_X$.
Let $r : X \to \{p\}$ be defined by $r(x) = p$ for all $x \in X$. We claim that this is the required retraction. Then $i_{\{p\}} \circ r =r$. So the problem boils down to showing that $r \simeq \text{Id}_X$.
Now since $X \simeq \{c\}$, there exist continuous maps $f : X \to \{c\}$ and $g : \{c\} \to X$ such that $f \circ g \simeq \text{Id}_{\{c\}}$ and $g \circ f \simeq \text{Id}_{X}$. Now note that there can only be one such map $f$, the map defined by $f(x) = c$ for all $x \in X$ (which is trivially continuous).
At this point I figured that if I showed that $r \simeq g \circ f$, then I'd arrive at $r \simeq \text{Id}_X$. But for any $x \in X$ we have $(g\circ f) (x) = g(f(x)) = g(c)$ and since we don't know exactly what function $g$ is, $g(c)$ could be anything.
Now I'd have to define an explicit homotopy betwen $r$ and $g \circ f$ but I'm not sure how to do that. Intuitively I need to find some way to continuously 'move' $g(c)$ to $p$ in $X$ via this homotopy, and usually if $X$ is convex then this can be done using a straight line homotopy. I'm not sure how to construct any analogous homotopy in this case.
How can I prove the above?