the display function in linked list is not working properly : When i call the display function, the first element of linked list is printed twice. I do not know what is wrong with the code. Please help me to figure it out.  The code is as follows:

    #include <iostream>
    using namespace std;
    class node{
    public:
    	char data;
    	node *link;
    };
    
    class linklist{
    	private:
    		node *start, *temp, *cur;
    	public:
    		linklist(){
    			start = NULL;
    		}
    		void insert(char x){
    			if (start == NULL){
    				start = new node;
    				start->data = x;
    				start->link = NULL;
    				cur = start;
    			}
    			else
    			while (cur->link != NULL){
    				cur = cur->link;
    			}
    
    				temp = new node;
    				temp->data = x;
    				temp->link = NULL;
    				cur->link = temp;
    
    		}
    		void display(){
    			cur = start;
    			
    			while (cur->link != NULL){	
    				cout << "Value is: " << cur->data << endl;
    				cur = cur->link;
    			}
    			cout << "Value is: " << cur->data << endl;
    		}
    };
    int main(){
    	linklist obj;
    	obj.insert('e');
    	obj.insert('t');
    	obj.insert('r');
    	obj.insert('w');
    	obj.insert('l');
    	obj.display();
    
    	system("Pause");
    }

the expected output is: etrwl.
Actual output: eetrwl