$f(x^2)=(f(x))^2=f(f(x))$, $\forall x\in\mathbb R$. Prove that, there are infinitely many polynomial $f$ of degree $\geq1$, such that 
$f(x^2)=(f(x))^2=f(f(x)), \forall x\in\mathbb R$.                                                                                can only find three of them namely, $f(x)=0,1,x^2$.                     
Please help.

Clearly the degree of the polynomial must be $2$, and the leading coefficient must be $1$.
Let the polynomial be $x^2+bx+c$
we need:
$x^4+bx^2+c=(x^2+bx+c)^2=((x^2+bx+c)^2+b(x^2+bx+c)+c$.
Lets separate into the five coefficients to get this system:
$1=1^2=1^3$ (coefficients of $x^4$)
$0=2b=2b$ (coefficients of $x^3$)
$b=b^2+2c=b^2+2c+b$ (coefficients of $x^2$) ( so $b=0$)
$0=0=0$ (coefficients of $x^2$)
$c=c^2=c^2+bc+c=c^2+c$ ( so $c=0$).
Hence the only polynomial of positive degree is $x^2$
