We can follow Morse lemma's proof closely and see that it works out fine. As in that case, we can take advantage of the following lemma:
Lemma: If $g$ is a smooth function for which $g(0)=0$, then there exists a smooth function $k$ such that
$$g(x)=xk(x). $$
Furthermore, $k(0)=g'(0)$.
This last observation is trivial from the equation, but is worthy pointing out. For a proof, just notice that $g(x)=\int_0^1(g(tx))'dt=\int_0^1g'(tx)xdt=x\int_0^1g'(tx)dt,$ so that $k(x)=\int_0^1g'(tx)dt$ gives the function we want.
Suppose now, for the sake of exposition, that $n$ is big enough. We then have $f(x)=xf_1(x)$ for some $f_1(x)$. Since $f_1(0)=f'(0)=0$, we can apply the result again to $f_1$, yielding that $f_1(x)=xf_2(x)$ for some $f_2(x)$, and therefore $f(x)=x^2f_2(x)$.
Note that there is a little problem now: a priori we don't know that $f_2(0)=0$, since $f_2(0)=f_1'(0)$, not $f'(0)$. Luckily we have that the proof of the lemma tells us that $f_2(x)=\int_0^1f_1'(tx)dt=\int_0^1\int_0^1f''(stx)sdsdt.$ Therefore, $f_2(0)=0$. (Actually, you can just use Taylor's theorem on $f$ and take the limit on $\frac{f(x)}{x^2}$ to conclude that $f_2(0)=0$.) Likewise, $f(x)=x^3f_3(x)$... until $f(x)=x^nf_n(x),$ where $f_n(0)=\frac{1}{n!}f^{(n)}(0)$.
Since $f_n(0) \neq 0$, either $\sqrt[n]{f_n(x)}$ is smooth on a neighbourhood of zero or $\sqrt[n]{-f_n(x)}$ is, depending on whether $f_n(0)$ is positive or negative and if it is the case that $n$ is even of course. In any case, let $g(x)$ be the correct one. Then, $f(x)=(xg(x))^n$ or $f(x)=-(xg(x))^n$ if $n$ is even and $f^{(n)}(0) <0$. By letting $u(x)=xg(x)$, we have that $u'(x)=g(x)+xg'(x)$, and thus $u'(0)=g(0) \neq 0$. By the inverse function theorem, $u$ is a diffeomorphism near $0$ and we've found our $h$: indeed, $f (x)=\pm(u(x))^n,$ thus $f(u^{-1}(x))=\pm x^n.$ (Where I've already made the observation about when it is $+$ or $-$.) Letting $h:=u^{-1}$ then suffices.