The answers of Mario and Joe are both valid (I would vote for them if I could).
Problem 1
Assuming that what you posted is your ACTUAL code for push_back(), then it Link<T>has the wrong case.
link<T> * last_link = new link<T> (x);
... should be:
link<T> * last_link = new link<T> (x);
Doing this gets rid of error: expected primary-expression before β>β token(when compiling with g ++)
Problem 2
, , List<T> last_link. , , . :
link<T> * last_link = new link<T> (x);
... ...
Link<T> * new_link = new Link<T> (x);
, node.
3
, push_back() . , , .