If $\operatorname{deg}(f) \ne 0$ then $f(S^1) = S^1.$

Let $$f : S^1 \rightarrow S^1$$ be a continuous map such that $$\operatorname{deg}(f) \ne 0.$$

[Note : I have the degree defined as in this question.]

I'm trying to prove that the hypotheses above implie that $$f(S^1)=S^1.$$

What I've tried is the following,

Suppose that $$\exists \ x_0 \in S^1 \setminus f(S^1).$$

Having in mind that $$S^1 \setminus \{x_0\}$$ is a subspace of $$S^1$$ that is contractible, we obtain a diagram:

$$S^1 \overset{f}{\longrightarrow} S^1 \setminus \{x_0\} \overset{r}{\longrightarrow} \{f(1)\},$$

where $$r$$ is a strong deformation retraction of $$S^1 \setminus \{x_0\}$$ onto $$\{ f(1) \}.$$

Hence, $$r \circ f = c_{f(1)}$$, the constant map from $$S^1$$ to $$f(1).$$ Writing $$i : \{f(1)\} \rightarrow S^1$$ for the inclusion map, we have that $$i \circ r \simeq Id_{S^1 \setminus \{x_0\}}$$, that is, $$i \circ r$$ is homotopic to the identity relatively to the point $$f(1).$$

Hence $$f = Id_{S^1 \setminus \{x_0\}} \circ f \simeq (i \circ r) \circ f = i \circ c_{f(1)} = c_{f(1)}$$ and we get that f is homotopic to the constant map relatively to the point $$f(1)$$ and this contradicts the fact that $$\operatorname{deg}(f) \ne 0.$$

I don't know if my proof is correct or if it can be improved.

Thanks for your time!

Let $$\bar f:I\rightarrow \mathbb{R}$$ a lift of $$f$$, you have $$|\bar f(0)-\bar f(1)|<1$$ otherwise, you have $$\bar f(I)$$ is an interval (since $$f$$ is continuous) of diameter superior or equal to $$1$$, this would implies that $$f$$ is surjective. You deduce that $$|\bar f(1)-\bar f(0)|<1$$ and is an integer so it is zero.
I would have done it essentially the same way. If $$f$$ is homotopic to a constant (which it is if it isn't surjective), $$f_*(1)=0$$, where $$f_*:H_1(S^1)\to H_1(S^1)$$ is the induced homomorphism.
This is one definition of degree. Remember $$H_1(S^1)\cong\Bbb Z$$.
In other words, the winding number is $$0$$.