Let P(x,y) denote the assertion given in the statement of the problem. If there exists a such that f(a)=0, P(a,0) results in a=0. Now
P(x,x−y)→f(2x−y)f(x2−xy+y2)=(2x−y)(x2−xy+y2)
By dividing this equation by P(x,y) (where x+y=0), it is obtained that
f(x+y)f(2x−y)=x+y2x−y(1)
In equation (1) put y=1−x. This will result in f(3x−1)=(3x−1)f(1) and because 3x−1 is surjective over real numbers, we conclude that f(x)=xf(1). By putting this equality in the original equality, it is deduced that f(1)=±1 so functions f(x)=x and f(x)=−x are the only answers. ■