There are a ton of ways to do this. The common approach is to rely on expansions and contractions of line segments, and note that they're not merely continuous, but are also continuous in their parameters.
i.e. For (a,b) -> (c,d), use h(t) = ( (d-c)/(b-a) ) (t-a) + c.
If a, b, c, and d are continous functions in s, then H(t,s) is continuous (so long as b(s) = a(s) never happens).
In the diagram above, the f homeomorphism is from the square to the disk. It's just an expansion from the blue segment of the square to the green radius of the circle. It leaves fixed the 4 diagnoals from the center to a vertex, which happen to be radii. Note that the actual homeomorphisms in the diagram are restrictions of f and f inverse.
The g homeomorphism maps the circle to the circle by, in polar coordinates, expanding the angle in over one range, and contracting it over another. It leaves the center fixed. The definition of g will be split into cases, but equal where those cases overlap. Thus, although g is obviously continuous, you'd need to invoke a proposition about the continuity of such split cases to prove that g is continuous. Also, g's continuity at the origin might seem problematic (generally, where the "twisting all comes together" is a bad spot), but is actually trivial to show, as every open ball centered at the origin is invariant under g.
If you're asked to explicitly write down a homeomorphism, you should be able to do so with these functions. If a full proof is required, you might want to establish that they're homeomorphisms by looking at the "solid" maps, and then use that a continuous bijection from a compact space to a Hausdorff space is a homeomorphism. Then show that the restrictions to those specific spaces are still bijections. You could also do it by explicitly writing out the inverses.
Again, my solution is FAR from the only way to do this problem.