'Linked list c++ insertback

I am really new to data structures. I am trying to figure out why my insertback() function doesn't work. The first print does 3,2,1 but the second doesn't print anything. I think it has something to do with head, but I'm not really sure. Please help.

#include <iostream>
using namespace std;

struct Node
{
    int data;
    Node* next;
};

class lst
{
public:
    void Insertfron(int x);
    void Print();
    void Insertback(int x);
private:
    Node* head;
};

void lst::Insertfron(int x)
{
    Node* temp = new Node;
    temp->data = x;
    temp->next = head;
    head = temp;
}

void lst::Print()
{
    Node* temp = head;
    while(temp->next!=NULL)
    {
        cout<<temp->data<<' ';
        temp=temp->next;
    }
    cout<< endl;
}

void lst::Insertback(int x)
{
    Node* backinst = new Node;
    backinst->data = x;
    backinst->next = NULL;
    Node* temp = head;
    while(temp->next!=NULL)
    {
        temp = temp->next;
    }
    temp->next = backinst;
}

int main()
{
    lst listt;
    listt.Insertfron(1);
    listt.Insertfron(2);
    listt.Insertfron(3);
    listt.Print();
    listt.Insertback(4);
    listt.Print();
    return 0;
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source