Put x=0,y=−1: 0=−2f(0)−f(0) thus f(0)=0.
Put y=1: 2f(x)=f(2x), for all x so the given condition can rewrite as
(y+1)f(x)f(y−1)=yf(xy)−f(x),∀x,y
Continue to put y=0 then f(x)f(−1)=−f(x). If f(−1)=−1 then f(x)=0 for all x, which is satisfied the given condition. Now suppose that there exist some x0 such that f(x0)=0, this implies that f(−1)=−1 and f(1)=1.
In (*), put x=1 then (y+1)f(y−1)=yf(y)−1 for all y. Replace to the LHS of (*), one can get
(yf(y)−1)f(x)=yf(xy)−f(x)
so f(xy)=f(x)f(y), ∀x,y=0 which implies that f is multiplication function. Also put y=−1 in (*) then f(x)=−f(−x) which implies that f(x) is odd.
Suppose that a is some number such that f(a)=0 then by substituting x=a into (*), we get 0=yf(ay)−0 so f(ay)=0,∀y=0. If a=0 then ay can take any values on R so f(x)≡0, contradiction. Thus a=0 is the unique value such that f(a)=0. Since (y+1)f(y−1)=yf(y)−1, change y→−y and using the property of odd function, one can get
(−y+1)f(−y−1)=yf(y)−1,∀y∈R.
Thus for all y=±1 we have
(y+1)f(y−1)=(y−1)f(y+1)⇔f(y−1)f(y+1)=y−1y+1
for all y=±1. Due to the multiplication property of f, rewrite the last equation as
f(y−1y+1)=y−1y+1,∀y∈R∖{±1}.
Note that t=y−1y+1 can take any value on R∖{1} so f(t)=t,∀t=0,1. But f(1)=1,f(0)=0 so we have f(x)=x,∀x∈R. Hence, there are two functions that satisfying the given condition: f(x)=0,∀x∈R and f(x)=x,∀x∈R.