The push_back does the job. You'll want to add insertion and deletion methods and some more constructors for basic linked list functionality.
Some issues:
You're not deleting nodes. You should write a destructor which does this (should also do it in your future insertion method).
You're not handling the situation where new fails.
You should use nullptr instead of 0 in modern C++.
Indention is not right on lines 61-67.
Keep your brace style consistent.
Don't include all of the std namespace at the global level.
Those should keep you going for a bit. Once you get a little more comfortable you should try to generalize the list to use any data type, not just int.
The destructor's job should be to delete all the Nodes in the Linked List. For that, you'd have to iterate over the list, and save a pointer to the subsequent node before deleting the current one.
If you delete a node without saving its next pointer, you'll lose the rest of the list (and create a memory leak).
I created some videos for LinkedLists. Although they don't show how to delete a node (I might do that in the future), I still hope you'll find them useful.
my only concern here is if I have to check if the list is empty initially? I'm assuming that if the current nodes next node is not pointing to 0 then the list is empty. I'm just not sure if my assumption here is correct.
Check if the head pointer points at a node or not. That's the way to determine if a list is empty or otherwise.
If you check the next pointer, then you're by default, assuming that there is a Node in the list with a next pointer to check.
So, to do that, do this:
1 2 3 4
if(current == nullptr) //Check if we are pointing at a head node or not.
{
return; //If there is not even a head node, the list is empty and we return
}