By construction, each $f_k$ is monotone increasing, $f_{k+1}=f_k$ on $I_j^k, j=1,2,...,2^k-1$ and $|f_k - f_{k+1}| < 2^{-k}$. Hence, $\sum (f_k-f_{k+1})$ converges uniformly on $[0,1]$, and therefore $\{f_k\}$ converges uniformly on $[0,1]$.
What does it mean by that $\sum (f_k-f_{k+1})$ converges uniformly on $[0,1]$? How the previous statements imply this uniform convergence? And why $\{f_k\}$ also converges uniformly on $[0,1]$?
Hint:
$$\sum_{k=1}^\infty \left|f_k - f_{k+1}\right| \le \sum_{k=1}^\infty \frac1{2^k} = 1$$ so $\sum_{k=1}^\infty (f_k - f_{k+1})$ converges uniformly by the Weierstrass M-test.
We have
$$f_1 - f_{n+1} = \sum_{k=1}^n (f_k - f_{k+1}) \xrightarrow[n\to\infty] {\text{uniformly}} \sum_{k=1}^\infty (f_k - f_{k+1})$$
so $$f_{n} \xrightarrow[n\to\infty] {\text{uniformly}} f_1 - \sum_{k=1}^\infty (f_k - f_{k+1})$$